一:卸载旧版本
老版本的Docker被称为docker
或docker-engine
。如果安装了这些,请卸载它们以及相关的依赖项。
$ sudo yum remove docker docker-common docker-selinux docker-engine
如果yum
报告说没有安装这些软件包,那么也行。
二:安装Docker CE
1. 更新系统
#yum update -y
2. 添加 docker 版本仓库
cat >/etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/7 enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg [docker-ce-stable] name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/centos/7/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg EOF
3. 安装 docker
docker 在 17 年 3 月份后,Docker 分成了企业版(EE)和社区版(CE),转向基于时间的 YY.MM 形式的版本控制方案,17.03 相当于 1.13.1 版本
#yum install docker-ce
安装旧版本 (1.12) 方法 yum install docker-engine
4. 设置 docker 开机自启动
#systemctl enable docker.service
5. 启动 Docker daemon
#systemctl start docker
6. 验证 docker 安装是否成功
#docker run --rm hello-world
--------------------------------------------------- 以下是程序输出
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c04b14da8d14: Pull complete
Digest: sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
7. 创建 docker 组
将 host 下的普通用户添加到 docker 组中后,可以不使用 sudo 即可执行 docker 程序(只是减少了每次使用 sudo 时输入密码的过程罢了,其实 docker 本身还是以 sudo 的权限在运行的。)
sudo usermod -aG docker your_username
8. 其他配置
设置 ipv4 转发(centos 上需要配置),实践中发现 Ubuntu 和 Suse 上无需配置
查看
#sysctl net.ipv4.ip_forward
临时更改
#sysctl -w net.ipv4.ip_forward=1
永久更改
#echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf #sysctl -p #sysctl net.ipv4.ip_forward
三: 卸载 docker
方法1:
yum list installed | grep docker
sudo yum -y remove docker-engine.x86_64
rm -rf /var/lib/docker
方法2
rpm方法卸载
rpm -e --nodeps `rpm -aq |grep docker`