Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。

Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。

本文介绍 Docker CE 的安装使用。

使用yum安装docker

首先查看系统内核版本,来验证是否符合docker要求,通过uname -r命令:

1
2
[root@bogon ~]# uname -r
3.10.0-693.21.1.el7.x86_64

安装步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#移除旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine


#安装一些必要的系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2

#添加阿里的yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新 yum 缓存:
yum makecache fast

#安装docker-ce
yum -y install docker-ce

#启动服务
systemctl start docker

测试hello-world

1
docker run hello-world

使用docker ps可以查看当前正在运行的容器。

使用脚本安装docker

1
2
3
4
5
6
7
curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

systemctl start docker

docker run hello-world

镜像加速

由于某些原因,从官网拉取docker镜像十分缓慢,所以建议配置国内的镜像源。
这里使用163的docker镜像源http://hub-mirror.c.163.com

新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。

请在该配置文件中加入(没有该文件的话,请先建一个):

1
2
3
4
# vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}

删除docker-ce

执行以下命令即可:

1
2
yum remove docker-ce
rm -rf /var/lib/docker

常用命令参数

1
docker run ubuntu:15.10 /bin/echo "Hello world"

run:运行一个容器。

ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

/bin/echo "Hello world": 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。


直接输入docker然后回车,可以看到docker支持的所有命令。比如run, build, images, pull等。
具体到每条命令可以用docker COMMAND --help查看使用方法

常用的一些:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
docker ps 查看正在运行的容器
-a 查看所有容器,包含stop的
docker iamges 查看本机存在的docker镜像
docker search httpd 查找远端docker仓库中的httpd镜像
docker pull httpd 拉取镜像到本地
docker run httpd 启动一个容器
-d 后台运行
-t 启动一个伪终端
-i 允许你对容器内的标准输入 (stdin) 进行交互
-P 将容器内部使用的网络端口映射到外部主机上,默认外部端口32769
-p 5001:5000 将外部5001端口映射到容器的5000端口
--name mydocker 将容器命名为mydocker
-v $PWD/www:/www 将主机中当前目录下的www挂载到容器的/www
docker logs <NAME>|<HASH> 查看容器内的标准输出
-f 类似tail -f一样来输出内部的stdout
docker stop <NAME>|<HASH> 停止容器
docker port <NAME>|<HASH> 查看容器端口映射情况
docker start <NAME>|<HASH> 启动已经停止的容器
docker top <NAME>|<HASH> 查看容器内部运行的进程
docker rm <NAME>|<HASH> 删除不需要的容器,必须是在stop状态
docker inspect <NAME>|<HASH> 查看 Docker 的底层信息,返回一个 JSON 文件记录着 Docker 容器的配置和状态信息