Docker

Docker必须安装在CentOS7 64位机器上。

1 卸载老版本Docker

Docker老版本,docker-engine。Docker进入17.x版本后,名称发生了变化,叫做docker-ce或者docker-ee。

sudo yum remove docker docker-common container-selinux docker-selinux docker-engine
执行该命令只会卸载Docker本身,而不会删除Docker内容,例如镜像、容器、卷以及网络。这些文件保存在/var/lib/docker 目录中,需要手动删除。

2 安装仓库

(1) 安装yum-utils ,这样我们就能使用yum-config-manager 设置Yum源。

(2) 执行以下命令,添加Yum源

sudo yum-config-manager
--add-repo
https://download.docker.com/linux/centos/docker-ce.repo

(3) 【可选】执行以下命令,启用“edge”仓库。edge仓库其实也包含在了docker.repo文件中了,但默认是禁用的,我们可使用以下命令启用edge仓库。

sudo yum-config-manager --enable docker-ce-edge

如果想要再次禁用edge仓库,可执行以下命令。

sudo yum-config-manager --disable docker-ce-edge

Docker有两种构建方式,Stable(稳定)构建一般是一个季度发布一次;Edge(边缘)构建一般是一个月发布一次。

3 安装Docker
做好以上准备后,就可以正式安装Docker了。
(1) 执行以下命令更新Yum的包索引

sudo yum makecache fast

(2) 安装你想要的Docker版本(CE/EE)
Docker CE
sudo yum install docker-ce

Docker EE
sudo yum install docker-ee

(3) 在生产环境中,我们可能需要指定想要安装的版本。可使用以下命令列出当前可用的Docker版本。

yum list docker-ce.x86_64 --showduplicates |sort -r

(4) 启动Docker

sudo systemctl start docker

(5) 验证安装是否正确

sudo docker run hello-world

这样,Docker将会下载测试镜像,并使用该镜像启动一个容器。

升级Docker
升级Docker非常简单
(1) 执行以下命令

sudo yum makecache fast

(2) 按照安装的步骤,即可升级Docker。

Docker Compose

curl -L https://github.com/docker/compose/releases/download/$dockerComposeVersion/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

[wsun@localhost docker-1-simple]$ sudo /usr/local/bin/docker-compose up
Creating network "docker1simple_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-a4a4ebd5d945 -j RETURN: iptables: No chain/target/match by that name.
 (exit status 1))
[wsun@localhost docker-1-simple]$ sudo /usr/local/bin/docker-compose up
Creating network "docker1simple_default" with the default driver
ERROR: Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD -o br-7abd83608f56 -j DOCKER: iptables v1.4.21: Couldn't load target `DOCKER':No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
 (exit status 2

sudo ip link delete docker0
sudo systemctl restart docker

进入容器:
[wsun@localhost ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb9c5812aedb kibana "/docker-entrypoin..." 2 days ago Up 41 minutes 0.0.0.0:5601->5601/tcp elk_kibana_1
68658b7a5749 elasticsearch "/docker-entrypoin..." 2 days ago Up 41 minutes 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp elk_elasticsearch_1
75a23f03e621 logstash "/docker-entrypoin..." 2 days ago Up 41 minutes 0.0.0.0:5000->5000/tcp elk_logstash_1
[wsun@localhost ~]$ sudo docker inspect --format "{{.State.Pid}}" 75a23f03e621
4327
[wsun@localhost ~]$ sudo nsenter --target 4327 --mount --uts --ipc --net --pid
root@75a23f03e621:/#

你可能感兴趣的:(Docker)