我的环境
目前Docker支持大部分的主流平台,如Ubuntu、Cent OS、Windows、Mac OS等。由于我习惯使用CentOS 7,所以本次实验环境是基于Cent OS 7 64位。
特别说明:刚安装好的系统,使用前,建议执行yum -y update命令,对系统进行更新。
安装Docker
CentOS 7中,源中已经内置Docker,可以直接使用yum安装。
安装成功后,启动并加入开机自动启动。
1 2
| systemctl start docker systemctl enable docker
|
走过的坑
在虚拟机安装之前,同时也在阿里云中centOS 7中尝试安装,遇到Docker无法启动问题,原因在于,Docker运行时需要创建虚拟网卡(就像Vmware中有VMnet1、VMnet8一样),但是默认情况下,阿里云已经占用了私有IP地址段,故需要删除。
1
| route del -net 172.16.0.0 netmask 255.240.0.0
|
这样,就可以正常启动Docker。查看网卡信息如下:
1 2 3 4 5 6 7 8 9
| [root@localhost ~] 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN .... 4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP link/ether 02:42:a2:21:be:fa brd ff:ff:ff:ff:ff:ff inet 172.17.42.1/16 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:a2ff:fe21:befa/64 scope link valid_lft forever preferred_lft forever
|
多了一个docker0网卡,且ip段为172.17.0.0。
下载镜像
安装完Docker后,需要下载镜像。那什么是镜像呢?简单的来说,就是docker可以启动运行的文件,举个例子,就像我们安装好虚拟机的文件,拷贝给别人在别人的虚拟机中也能打开。
镜像在哪里,如何获取?镜像放置在一个镜像库中,默认镜像库是Docker Hub,这个镜像库是Docker公司负责维护的公共仓库,当然也可以选择其他镜像仓库,如公司的私有仓库、国内维护的仓库dockerpool。
下载镜像
1 2 3
| 1、docker pull ubuntu 2、docker pull ubuntu:14.04 3、docker pull dl.dockerpool.com:5000/ubuntu:14.04
|
其中14.04是镜像的标签,如果忽略,默认为latelast。
走过的坑
由于Docker版本升级,当从非官方源下载时,为了安全起见,需要进行手工认证下载源的安全性。
在CentOS 7中,Docker的配置文件/etc/sysconfig/docker,
在INSECURE_REGISTRY处修改,添加自己的源,并去掉注释。如:
1
| INSECURE_REGISTRY='--insecure-registry dl.dockerpool.com:5000'
|
重新启动docker服务,便可以在非官方源下载了。
1 2 3 4
| systemctl restart docker systemctl stop docker systemctl start docker systemctl status docker
|
容器新建、启动、终止
下载好镜像只有,可以查看本地的镜像。
1 2 3 4
| [root@localhost ~] REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE dl.dockerpool.com:5000/ubuntu 14.04 5506de2b643b 13 months ago 199.2 MB dl.dockerpool.com:5000/ubuntu latest 0b310e6bf058 13 months ago 126.6 MB
|
指定镜像,创建容器。容器我们可以简单的认为是我们通过虚拟机文件启动的一台虚拟机。
1 2
| [root@localhost ~]# docker create -it dl.dockerpool.com:5000/ubuntu:14.04 130b9ee0454e81b3fa62deec189c33b5be295035dbeda9f2ad93578e385e1993
|
其中我们需要指定完整的镜像名称以及标签。
创建好的容器并不会运行,而是处于停止状态。
1 2 3
| [root@localhost ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 130b9ee0454e dl.dockerpool.com:5000/ubuntu:14.04 "/bin/bash" About a minute ago Created evil_bohr
|
启动指定容器,需要指定容器ID,当然可以简写,只要可以唯一识别即可。
1 2 3 4 5
| [root@localhost ~] 130 [root@localhost ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 130b9ee0454e dl.dockerpool.com:5000/ubuntu:14.04 "/bin/bash" 3 minutes ago Up 6 seconds evil_bohr
|
终止指定容器
1 2 3 4 5
| [root@localhost ~] 130 [root@localhost ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 130b9ee0454e dl.dockerpool.com:5000/ubuntu:14.04 "/bin/bash" 5 minutes ago Exited (0) 6 seconds ago evil_bohr
|
除了这几种最基础的操作以外,还有许多操作需要我学习,我也会不断学习,不断总结。