本章背景知识
本章主要介绍在 Centos 操作系统平台上进行安装和配置Docker Engine。
环境准备
1、操作系统支持。
CentOS、Debian、Fedora、Raspbian、RHEL、SLES、Ubuntu、Binaries
2、启用yum 软件仓库源。
centos-extras
编者注:Centos 默认已经开启centos-extras 源。
3、移除Docker旧版本。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
4、关闭 firewalld 防火墙,安装 iptables 防火墙。
# 关闭防火墙
systemctl stop firewalld
# 取消开机启动
systemctl disable firewalld
#安装iptables
yum install iptables-services -y
# 重启防火墙使配置生效
systemctl start iptables
# 设置防火墙开机启动
systemctl enable iptables
如果不执行这一步,Docker 服务器无法自动添加规则
[(103条消息) centos7安装docker报错iptables v1.4.21: Couldn‘t load target `DOCKER-ISOLATION‘_尧、木子的博客-CSDN博客](https://blog.csdn.net/weixin_38879931/article/details/125563912)
5、创建默认存储目录
mkdir /data
安装方法
1、yum 仓库:
使用 yum 软件仓库联网安装。
2、RPM包:
下载 RPM 包并手动安装,并且手动管理升级。这对于有些无法访问互联网的机器特别有用。
3、自动化脚本:
在测试和开发环境中,用户使用自动化脚本安装 Docker。
编者注:本章节介绍【yum仓库】和【RPM包】安装方式。
yum 仓库:联网安装
设置 yum 软件仓库
1、安装 yum-utils 软件包。
2、设置Docker软件仓库。
sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Docker Engine 安装步骤
1、安装 Docker Engine
,容器和 Docker Compose
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
2、安装过程中,会提示验证指纹,你需要接受并验证它。
3、若需要安装特定版本的 Docker
引擎,你需要列出所有的可用版本。
yum list docker-ce --showduplicates | sort -r
4、启动 Docker
sudo systemctl start docker
5、验证 Docker
是否能够运行hello-world
镜像
sudo docker run hello-world
RPM 包:离线安装
1、大多数生产环境是不允许连接外网的,所以只能使用下载 RPM 包后手动安装。
2、由于安装 Docker RPM 包的相关依赖包非常复杂,所以这里就使用制作好的 Yum 离线缓存,进行安装,简化安装过程。
设置 yum 软件仓库
1、下载对应网盘中的 yum 仓库缓存包和配置文件,找到对应操作系统版本。
2、上传对应 yum.tar.gz
和 yum.repos.d.tar
包。
cd /var/cache/
rm -rf /var/cache/yum
tar -zxvf yum.tar.gz
cd /etc/
rm -rf /etc/yum.repos.d
tar -zxvf yum.repos.d.tar.gz
Docker Engine 安装步骤
1、安装 Docker Engine
,容器和 Docker Compose
sudo yum -C --nogpgcheck install -y yum-utils
sudo yum -C --nogpgcheck install docker-ce docker-ce-cli containerd.io docker-compose-plugin
选项 | 说明 |
---|---|
-C | 不更新缓存 |
–nogpgcheck | 不验证指纹。 |
2、启动 Docker |
sudo systemctl start docker
3、Docker 镜像本地化仓库配置
Docker Hub 在国内访问比较慢,可以使用本地化网易镜像,提高下载镜像的速度。
4、配置镜像源地址。
root# vim /etc/docker/daemon.json
---------------写入以下内容--------------
{
....
"registry-mirrors": ["https://hub-mirror.c.163.com"]
....
}
5、重启 Docker 服务。
root# sudo systemctl restart docker
6、验证 Docker
是否能够运行 hello-world
镜像
sudo docker run hello-world
配置 Docker Engine 服务
本节主要介绍Docker Engine 服务配置。
Docker Engine管理用户
以上方式安装后,不会自动创建管理Docker服务的普通用户。每次操作Docker都需要root用户,这样非常不方便。针对这个问题,可以创建新的普通用户,并且加入到docker用户组。
1、创建Docker Engine专用管理用户,并加入docker用户组。
sudo useradd docker -g docker
Docker Engine服务管理
1、Docker Engine 服务开启启动
systemctl enable docker
2、systemctl 启停Docker Engine服务。
sudo systemctl start docker.service
sudo systemctl status docker.service
sudo systemctl stop docker.service
3、service 启停Docker Engine服务。
root# sudo service docker start
root# sudo service docker status
root# sudo service docker stop
Docker Engine更改默认存储目录
1、Docker 默认的存储目录是存放在/var/lib/docker,这个目录一般挂载在根(/) 目录下。
2、这个目录存储大量的镜像和容器,非常容易撑满磁盘,所以需要更换默认的存储目录。
3、配置默认存储目录。
root# vim /etc/docker/daemon.json
---------------写入以下内容--------------
{
…snip…
"data-root": "/data"
…snip…
}
4、关闭Docker 服务。
sudo systemctl stop docker
5、迁移Docker 容器和镜像数据。
sudo mv /var/lib/docker/* /data/
6、重启Docker服务。
root# sudo systemctl start docker
7、检查是否能够成功拉取镜像。
root# sudo docker pull hello-world
也可以使用软连接方式进行数据迁移。