转载并整理自Docker Docs:https://docs.docker.com/engine/install/centos/
文章目录
Docker安装方法
您可以根据需要,以不同方式安装 Docker Engine:
-
大多数使用Docker存储库安装,以便于安装和升级任务。这是推荐的方法。
-
也可以下载 RPM 包并手动安装,完全手动管理升级。比如在无法访问互联网的系统上安装Docker的情况下非常有用。
-
在测试和开发环境中,可选择使用自动化的便利脚本来安装Docker。
使用存储库安装
在新主机上首次安装Docker Engine之前,您需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
设置存储库
安装yum-utils包(提供yum-config-manager 实用程序)并设置稳定存储库。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker 引擎
- 安装最新版本的 Docker Engine 和 containerd,或者按下面安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
如果您启用了多个 Docker 存储库,则在yum install或 yum update命令中未指定版本的情况下安装或更新始终会安装可能的最高版本,这可能不适合您的稳定性需求。
此命令会安装 Docker,但不会启动 Docker。它还会创建一个 docker组,但是,默认情况下它不会向该组添加任何用户。
- 要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装一种。以下命令列出并排序您的存储库中可用的版本。此示例按版本号对结果进行排序,从高到低:
yum list docker-ce --showduplicates | sort -r
返回的列表取决于启用了哪些存储库,并且特定于您的 CentOS 版本(.el7在本示例中由后缀表示)。
# 使用版本号:后,-前的版本字符,如3:20.10.17-3.el7,VERSION_STRING=20.10.17
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
启动 Docker
sudo systemctl start docker
从包安装
参考原官方文档:https://docs.docker.com/engine/install/centos/#install-from-a-package
使用便利脚本安装
参考原官方文档:https://docs.docker.com/engine/install/centos/#install-using-the-convenience-script
卸载 Docker 引擎
卸载 Docker Engine、CLI 和 Containerd 包:
sudo yum remove docker-ce docker-ce-cli containerd.io
删除文件
主机上的映像、容器、卷或自定义配置文件不会自动删除。您必须手动删除任何已编辑的配置文件。
# 删除所有镜像、容器和卷
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
对外提供TCP的Docker服务(默认:2375端口,建议修改)
编辑/usr/lib/systemd/system/docker.service,在ExecStart=/usr/bin/dockerd
后增加-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
这里2375可以自己定义一个端口号,默认是2375
vi /usr/lib/systemd/system/docker.service
# 增加后如下
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
重新加载配置文件
systemctl daemon-reload
重启docker服务
systemctl restart docker
如果有防火墙,配置端口开放,就可以远程连接docker服务了
docker命令免sudo配置
docker命令本身不需要sudo执行的,但是因为安装的用户不是root用户,所以安装的时候需要sudo权限,导致安装之后的docker需要使用sudo执行,一个是不方便,另一个是其他工具或依赖于docker的服务(如minikube等)因为不能sudo权限调用docker就会发生错误,所以介绍一下免除sudo,而且不使用sudo运行docker也避免了docker容器拥有权限过高的隐患
- 检查是否存在docker用户组
cat /etc/group | grep docker
# 输出如下,即为有用户组
docker:x:499:
- 如果没有就创建docker组,第一步有用户组的就直接跳过这一步
sudo groupadd docker
- 将用户添加到docker分组
sudo usermod -aG docker 用户名
- 查看是否已添加
cat /etc/group
# 输出中,docker的组后面有刚刚的用户名即可
docker:x:499:用户名
- 重启docker
sudo systemctl restart docker
- 给docker.sock添加权限
sudo chmod a+rw /var/run/docker.sock
Docker Compose
官方文档:https://docs.docker.com/compose/install/
- 需要保证已安装Docker,下面的说明概述了 Compose当前稳定版本 ( v1.29.2 ) 的安装。要安装不同版本的Compose,请将给定的版本号替换为您想要的版本号。
安装Docker Compose
运行此命令以下载Docker Compose的当前稳定版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
对二进制文件应用可执行权限
sudo chmod +x /usr/local/bin/docker-compose
注意:如果docker-compose安装后命令失败,请检查您的路径。您还可以/usr/bin在路径中创建指向或任何其他目录的软链接。
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试安装
docker-compose --version
卸载Docker Compose
如果您使用curl方式安装,使用以下命令卸载Docker Compose :
sudo rm /usr/local/bin/docker-compose
如果您使用pip方式安装,使用以下命令卸载Docker Compose :
pip uninstall docker-compose
配置Docker日志驱动程序
Docker默认json-file日志驱动程序,该日志驱动程序存储的日志文件可能会导致大量磁盘空间用于生成容器的日志输出,从而导致磁盘空间耗尽。
Docker 将json-file日志驱动程序(无日志轮换)作为默认设置,为保持与旧版本 Docker 的兼容性,以及在将Docker用在 Kubernetes 运行时的情况下。
默认的日志驱动程序是json-file,以下示例将默认日志记录驱动程序设置为local日志驱动程序:
修改/etc/docker/daemon.json,没有则创建daemon.json文件添加配置
{
"log-driver": "local"
}