UDN-企业互联网技术人气社区

板块导航

浏览  : 1359
回复  : 1

[技术交流] 前端开发实例教程之Docker

[复制链接]
cat77的头像 楼主
发表于 2016-8-4 09:39:42 | 显示全部楼层 |阅读模式
  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  Windows

  1、 安装Docker到我们的电脑,下载地址:

  http://7xawqb.com2.z0.glb.qiniucdn.com/Docker/toolbox/releases/download/v1.11.2/DockerToolbox-1.11.2.exe
2.png


2.png

  Git工具以前有安装的话,现在就勾去不装。
2.png


2.png

  点击install安装

  2、 下载完毕之后我们安装好 然后在桌面上会有一个Docker Quickstart Terminal的快捷方式
2.png
,我们双击打开,如果打不开我们右键修改下git地址,这里配置正确的路径。
2.png

  打开之后就是这个样子的:
1.jpg

  这个窗口不能shift+insert键进行粘贴操作,我不太喜欢这样玩,我喜欢直接打开git-bash,
2.png

  输入命令:
  1. Docker-machine ssh default
复制代码

  回车进入Docker shell.
1.jpg

1.jpg

  我们敲个命令试试Docker images 显示所有镜像
1.jpg

  ok 镜像全部显示出来了 Docker安装这个还是没有什么问题的,至此Docker安装完毕。

  3、 为了我们能快速拉取Docker镜像,我们选择https://account.daocloud.io/signin

  国内镜像,用dao命令,这里需要到daocloud.io注册一个账号
1.jpg

  还可以用github 微信账号关联登陆:
2.png

  我已经注册好了,我就直接登陆进去了,登陆之后我们看到首页:
1.jpg

1.jpg

  我们点击立即开始:
1.jpg

  跳到了我的集群,其实也可以在主界面直接进去到集群里面的,我们选择windows:
1.jpg

  前面两步我们已经执行完毕了,我们直接选择安装好了,跳出如下界面,拷贝代码到我们的命令行下执行,我们打开git-bash执行
  1. Docker-machine ssh default
复制代码

  ,紧接着拷贝下面的代码,每个人的都不一样,注意区别。
1.jpg

  执行完毕后,我们就能运行dao命令了,我们打个dao试试。
1.jpg

  紧接着我们到我们的daocloud.io里面进入到镜像仓库里面,daocloud(这个列别里面的镜像就在daocloud服务器,很快!)镜像搜索centos,我们点击进去:
2.png

  看到下面镜像拉取说明,我们拉一下centos7,我们把命令改写成
  1. dao pull daocloud.io/centos:7
复制代码

  ,这样比较快。
1.jpg

  正在多线程拉取拉取!拉取完毕。
1.jpg

  我们Docker images看看是否拉取成功了。
1.jpg

  我们启动容器shell交互,为了简单演示,下面使用yun install 方式搭建一个简单的nginx环境。

  我们运行命令:
  1. Docker run –i t –name nginx_test[这个名字可以随便起] 904d6c400333[IMAGE ID] /bin/bash
复制代码

  回车
2.png

  进入到我们的centos容器,我们可以在这个里面搭建Docker,搭建完毕之后,通过Dockerfile来build一个镜像,也可以一次性写一个Dockerfile,我们下面采用一次性编写Dockerfile的方式进行。

  新建Dockerfile文件,写入如下内容:
  1. FROM daocloud.io/centos:7

  2. # Install Nginx.
  3. # WORKDIR /etc/yum.repos.d/
  4. ADD  nginx.repo /etc/yum.repos.d/
  5. RUN \
  6.    yum update -y && \
  7.    yum install -y wget && \
  8. #   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
  9.    wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
  10.    yum makecache && \
  11.    yum update -y && \
  12.    yum install -y vim && \
  13.    yum install -y nginx && \
  14.    yum install -y net-tools && \
  15.    echo "daemon off;" >> /etc/nginx/nginx.conf && \
  16.    echo "master_process  off;" >> /etc/nginx/nginx.conf
  17.    # Define mountable directories.
  18.    VOLUME ["/usr/share/nginx", "/etc/nginx/conf.d", "/var/log/nginx"]
  19.    # Define working directory.
  20.    WORKDIR /etc/nginx
  21.    # Define default command.
  22.    CMD ["/usr/sbin/nginx"]
  23.    # Expose ports.
  24.    EXPOSE 80
  25.    EXPOSE 443
复制代码

  编写nginx.repo文件:
  1. # nginx.repo
  2. [nginx]

  3. name=nginx repo
  4. baseurl=http://nginx.org/packages/centos/7/$basearch/
  5. gpgcheck=0
  6. enabled=1
复制代码

  运行如下命令:
  1. Docker build -t nginx:v1 .
复制代码

1.jpg

  打包完成,我们下面运行{Docker images}看看镜像有没有生成:
1.jpg

  生成好了!
  1. Docker run -d -p 8090:80 nginx:v1
复制代码

1.jpg

  端口也是绑定成功的。
1.jpg

  打开浏览器 输入192.168.99.100:8090,看看是否打开了nginx的页面:
1.jpg

  因为宿主ip是一个虚拟网卡上的ip所以要通过此ip访问,可以ifconfig查看宿主ip。

  我们也可以静态网页为宿主内的地址:

  在此之前先停止掉之前的容器,Docker ps 查看正在运行的Docker,然后Docker stop container id。
1.jpg

  再次运行命令:
  1. Docker run -d -p 8090:80 -v /logs:/var/log/nginx -v /www:/usr/share/nginx nginx:v1
复制代码

2.png

2.png

  至此 Docker教程完毕。

相关帖子

发表于 2016-8-5 13:59:14 | 显示全部楼层
  Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部