Docker学习笔记 —— Docker 介绍
Docker学习笔记 —— Docker 安装
Docker学习笔记 —— Docker 常用命令
Docker学习笔记 —— Docker 存储
Docker学习笔记 —— Docker 网络
Docker学习笔记 —— Dockerfile
文章目录
- 系列文章目录
- 一、 安装包下载
- 二、CentOS 安装Docker
- 2.1 环境
- 2.2 卸载旧版本
- 2.3 设置 yum 源
- 2.4 在线安装 Docker
- 2.4.1 安装最新版本
- 2.4.2 安装指定版本
- 2.4.3 启动服务/开机启动
- 2.4.4 验证安装
- 2.5 离线安装 Docker
- 2.5.1 rpm 安装
- 2.5.1.1 查看内核版本
- 2.5.1.2 下载 `rpm文件`
- 2.5.1.3 启动服务/开机启动
- 2.5.1.4 验证安装
- 2.5.2 二进制安装
- 2.5.2.1 二进制安装条件
- 2.5.2.2 下载二进制文件
- 2.5.2.3 解压文件
- 2.5.2.4 复制文件到 /usr/bin
- 2.5.2.5 设置开机启动/启动服务
- 2.5.2.6 验证安装
- 2.6 镜像加速
- 2.6.1 安装/升级Docker客户端
- 2.6.2 配置镜像加速器
- 2.7 卸载 Docker
- 2.7.1 卸载Docker Engine、CLI 和 Containerd 包
- 2.7.2 删除所有镜像、容器和卷
- 三、其他安装
一、 安装包下载
二、CentOS 安装Docker
- Mac 安装包:https://docs.docker.com/desktop/mac/install/
- Windows 安装包:https://docs.docker.com/desktop/windows/install/
- Linux 安装包: https://docs.docker.com/engine/install/
2.1 环境
- 以CentOS为例,更多安装方式参考:https://docs.docker.com/engine/install/centos/
2.2 卸载旧版本
- 要安装Docker Engine ,需要CentOS 7 或 CentOS 8 的维护版本,不支持或测试存档版本 ;
- 该centos-extras库必须启用,默认情况下是启用的;
- overlay2推荐使用存储驱动程序;
- 旧版本的 Docker 被称为 Docker 或 docker-engine。如果安装了这些,请卸载它们及其依赖项;
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2.3 设置 yum 源
- 安装 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
2.4 在线安装 Docker
2.4.1 安装最新版本
2.4.2 安装指定版本
安装最新版本的 Docker Engine 和Containerd
- sudo yum install docker-ce docker-ce-cli containerd.io
- 要安装指定版本的 Docker Engine 在repo中列出可用版本,然后选择并安装;
- 列出并排序存储库中可用的版本 yum list docker-ce --showduplicates | sort -r
- 通过完全限定的包名称安装特定版本,即包名称(docker-ce)加上从第二例从第一个冒号(:)开始知道第一个连接符(-),例如:docker-ce-18.09.1.
- 用上面的版本号替换
sudo yum install docker-ce- docker-ce-cli- containerd.io - 例如:sudo yum install docker-ce-19.03.8 docker-ce-cli-19.03.8 containerd.io
2.4.4 验证安装
启动服务
- sudo systemctl start docker;
开机自动启动
- sudo systemctl enable docker;
2.5 离线安装 Docker 2.5.1 rpm 安装 2.5.1.1 查看内核版本
通过 hello-world 镜像验证 Docker Engine 是否已正确安装;
- sudo docker run hello-world
2.5.1.2 下载 rpm文件
如果无法使用 Docker 的仓库来安装Docker ,可以下载 .rpm 版本的文件并手动安装。每次升级都需要下载一个新文件;
- Linux 查看版本当前操作系统内核信息 uname -a;
- Linux 查看当前操作系统版本信息 cat /proc/version;
- Linux 查看版本当前操作系统发行版信息 cat /etc/issue 或 cat /etc/redhat-release;
- 前往 rpm文件下载地址 并选择您的 CentOS版本。然后浏览 x86_64/stable/Packages/ 并下载 .rpm 要安装的 Docker版本文件;
- 这个下载网站我打不开,换个地址下载 网易开源镜像站
下载后的文件上传到虚拟机上,我放在了 /root下
- sudo yum install 文件存放路径
-
启动服务
- sudo systemctl start docker;
-
开机自动启动
- sudo systemctl enable docker;
2.5.2 二进制安装 2.5.2.1 二进制安装条件
通过 hello-world 镜像验证 Docker Engine 是否已正确安装;
- sudo docker run hello-world
2.5.2.2 下载二进制文件
- 64 位安装;
- 3.10 或更高版本的 Linux 内核;
- iptables 1.4 或更高版本;
- git 1.7 或更高版本;
- 一种ps可执行文件,通常由procps或类似软件包提供。
- 正确安装的cgroupfs层次结构;一个单一的、包罗万象的cgroup装入点是不够的。
2.5.2.3 解压文件
- 从 二进制文件下载地址 选择您的硬件平台,并下载.tgz与您要安装的 Docker Engine 版本相关的文件;
2.5.2.4 复制文件到 /usr/bin
- 执行命令 tar xzvf 文件 加压文件;
2.5.2.5 设置开机启动/启动服务
将解压的文件移动到可执行路径上的目录,例如/usr/bin/. 如果跳过此步骤,则必须在调用docker或dockerd命令时提供可执行文件的路径。
- sudo cp docker/* /usr/bin/
- 下载复制文件 docker.service/docker.socket 复制到 /etc/systemd/system ,修改 docker.service(注释掉:–containerd=/run/containerd/containerd.sock,不知道做啥用,排查了一下午 )
[Unit] Description=Docker Application Container Engine documentation=https://docs.docker.com After=network-online.target docker.socket firewalld.service containerd.service Wants=network-online.target containerd.service Requires=docker.socket [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker #我注释了后面的,容器才能起来,可能因为不存在吧 #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID TimeoutStartSec=0 RestartSec=2 Restart=always # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229. # Both the old, and new location are accepted by systemd 229 and up, so using the old location # to make them work for either version of systemd. StartLimitBurst=3 # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230. # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make # this option work for either version of systemd. StartLimitInterval=60s # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Comment TasksMax if your systemd version does not support it. # only systemd 226 and above support this option. TasksMax=infinity # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process OOMScoreAdjust=-500 [Install] WantedBy=multi-user.target
2.5.2.6 验证安装
启动服务
- sudo systemctl start docker;
开机自动启动
- sudo systemctl enable docker;
2.6 镜像加速 2.6.1 安装/升级Docker客户端
通过 hello-world 镜像验证 Docker Engine 是否已正确安装;
- sudo docker run hello-world
2.6.2 配置镜像加速器
- 推荐安装1.10.0以上版本的Docker客户端;
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"] //自己的地址
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.7 卸载 Docker
2.7.1 卸载Docker Engine、CLI 和 Containerd 包
2.7.2 删除所有镜像、容器和卷
- sudo yum remove docker-ce docker-ce-cli containerd.io
三、其他安装
主机上的映像、容器、卷或自定义配置文件不会自动删除。
删除所有镜像、容器和卷。
- sudo rm -rf /var/lib/docker
- sudo rm -rf /var/lib/containerd
- 更多安装请参考官网文档,这也是参考官网文档整理;



