Docker实例教程[超详细](一)

Docker

     Docker 是一个开源的应用容器引擎,让开发者能够打包他们的应用以及依赖包到一个可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。容器是彻底使用沙箱机制,相互之间不会有任何接口。html

Windows

一、 安装docker到咱们的电脑,下载地址:nginx

http://7xawqb.com2.z0.glb.qiniucdn.com/docker/toolbox/releases/download/v1.11.2/DockerToolbox-1.11.2.exegit

clip_image001

clip_image002

Git工具之前有安装的话,如今就勾去不装。github

clip_image003

clip_image004

点击install安装docker

二、 下载完毕以后咱们安装好 而后在桌面上会有一个Docker Quickstart Terminal的快捷方式clip_image005,咱们双击打开,若是打不开咱们右键修改下git地址,这里配置正确的路径。shell

clip_image006

打开以后就是这个样子的:vim

clip_image008

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

clip_image009

输入命令:centos

docker-machine ssh default

 

回车进入docker shell.浏览器

clip_image011

clip_image013

咱们敲个命令试试docker images 显示全部镜像

clip_image015

ok 镜像所有显示出来了 docker安装这个仍是没有什么问题的,至此docker安装完毕。

三、 为了咱们能快速拉取docker镜像,咱们选择https://account.daocloud.io/signin

国内镜像,用dao命令,这里须要到daocloud.io注册一个帐号

clip_image017

还能够用github 微信帐号关联登录:

clip_image018

我已经注册好了,我就直接登录进去了,登录以后咱们看到首页:

clip_image020

咱们点击加速器:

clip_image022

咱们点击当即开始:

clip_image024

跳到了个人集群,其实也能够在主界面直接进去到集群里面的,咱们选择windows:

clip_image026

前面两步咱们已经执行完毕了,咱们直接选择安装好了,跳出以下界面,拷贝代码到咱们的命令行下执行,咱们打开git-bash执行

docker-machine ssh default

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

clip_image028

执行完毕后,咱们就能运行dao命令了,咱们打个dao试试。

clip_image030

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

clip_image032

clip_image033

看到下面镜像拉取说明,咱们拉一下centos7,咱们把命令改写成

dao pull daocloud.io/centos:7

,这样比较快。

clip_image035

正在多线程拉取拉取!拉取完毕。

clip_image037

咱们docker images看看是否拉取成功了。

clip_image039

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

咱们运行命令:

docker run –i t –name nginx_test[这个名字能够随便起] 904d6c400333[IMAGE ID] /bin/bash

 回车

clip_image040

进入到咱们的centos容器,咱们能够在这个里面搭建docker,搭建完毕以后,经过Dockerfile来build一个镜像,也能够一次性写一个Dockerfile,咱们下面采用一次性编写Dockerfile的方式进行。

新建Dockerfile文件,写入以下内容:

FROM daocloud.io/centos:7

# Install Nginx.
# WORKDIR /etc/yum.repos.d/
ADD  nginx.repo /etc/yum.repos.d/
RUN \
   yum update -y && \
   yum install -y wget && \
#   wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && \
   wget -O /etc/yum.repos.d/CentOs-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo && \
   yum makecache && \
   yum update -y && \
   yum install -y vim && \
   yum install -y nginx && \
   yum install -y net-tools && \
   echo "daemon off;" >> /etc/nginx/nginx.conf && \
   echo "master_process  off;" >> /etc/nginx/nginx.conf
   # Define mountable directories.
   VOLUME ["/usr/share/nginx", "/etc/nginx/conf.d", "/var/log/nginx"]
   # Define working directory.
   WORKDIR /etc/nginx
   # Define default command.
   CMD ["/usr/sbin/nginx"]
   # Expose ports.
   EXPOSE 80
   EXPOSE 443

 

编写nginx.repo文件:

# nginx.repo
[nginx]

name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 

运行以下命令:

docker build -t nginx:v1 .

clip_image042

clip_image044

打包完成,咱们下面运行{docker images}看看镜像有没有生成:

clip_image046

生成好了!

docker run -d -p 8090:80 nginx:v1

clip_image048

端口也是绑定成功的。

clip_image050

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

clip_image052

由于宿主ip是一个虚拟网卡上的ip因此要经过此ip访问,能够ifconfig查看宿主ip。

咱们也能够静态网页为宿主内的地址:

在此以前先中止掉以前的容器,docker ps 查看正在运行的docker,而后docker stop container id。

clip_image054

再次运行命令:

docker run -d -p 8090:80 -v /logs:/var/log/nginx -v /www:/usr/share/nginx nginx:v1

clip_image055

编写内容

clip_image056

浏览器访问:

clip_image057

至此 docker教程完毕。