一、Anolis OS 8:在线安装

Docker 安装配置

1.安装Docker依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

如果出现错 GPG check FAILED 错误提示请使用以下命令: yum install -y yum-utils device-mapper-persistent-data lvm2 -nogpgcheck

2.添加安装源到仓库

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

3.安装docker

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.拷贝配置文件

# 创建配置目录
mkdir /etc/docker
# 拷贝配置文件
cp docker/conf/daemon.json /etc/docker/
{  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://almtd3fa.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
 "dns": ["223.5.5.5", "223.6.6.6"],
 "exec-opts": ["native.cgroupdriver=systemd"],
 "max-concurrent-downloads": 10,
 "max-concurrent-uploads": 5,
 "log-opts": {
    "max-size": "100m",
    "max-file": "5"
    },
    "live-restore": true
}

3.创建数据目录

# 建议选择当前系统空闲空间最大的路径
mkdir -p /opt/docker

# 为最小影响docker运行,使用软链接至新建的书目录
ln -s /opt/docker /var/lib/docker

5.启动服务

# 设置docker服务开机启动,并立即启动服务
systemctl enable docker --now

6. 查看服务状态

6.1 查看 docker 状态
# 使用以下命令,如可以正确输出 docker 版本信息表示安装配置成功。
[root@localhost ~]# docker version
Client: Docker Engine - Community
 Version:           26.1.2
 API version:       1.45
 Go version:        go1.21.10
 Git commit:        211e74b
 Built:             Wed May  8 14:01:00 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.2
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.10
  Git commit:       ef1912d
  Built:            Wed May  8 13:59:54 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

6.2 查看 docker compose 状态
# 如可以正确输出 docker compose 版本信息表示安装配置成功。
docker-compose -v
[root@localhost ~]# docker compose version
Docker Compose version v2.27.0

二、Ubuntu:下载 deb 包离线安装

前置条件

防火墙

如果您使用 ufw 或 firewalld 管理防火墙设置,请注意,当您通过 Docker 暴露容器端口时,这些端口会绕过您的防火墙规则。有关详细信息,请参阅 Docker 和 ufw。Docker 仅与 iptables-nft 和 iptables-legacy 兼容。使用 nft 创建的防火墙规则不支持已安装 Docker 的系统。确保您使用的任何防火墙规则集是用 iptables 或 ip6tables 创建的,并将它们添加到 DOCKER-USER 链中,详见数据包过滤和防火墙。

操作系统

安装 Docker Engine,您需要以下版本的 64 位 Ubuntu: - Ubuntu Noble 24.04 (LTS) - Ubuntu Jammy 22.04 (LTS) - Ubuntu Focal 20.04 (LTS)

安装配置

由于网络原因,docker在线安装的网络资源无法访问,这里选择下载所需的软件包进行离线安装的方式。

下载软件包

  1. 点击链接下载所需版本包
  2. 根据自己当前操作系统版本选择对应的包。
  3. pool/stable/ 在此目录中选择硬件架构(amd64, armhf, arm64, or s390x)
  4. 下载deb包 - containerd.io_.deb - docker-ce.deb - docker-ce-cli.deb - docker-buildx-plugin.deb - docker-compose-plugin_.deb
  5. 将下载的包上传至指定服务器进行安装
sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

安装完成后,docker服务默认会自动启动。

  1. 使用 docker info 命令验证
docker info

如果可以正常打印docker版本信息等,表示服务安装成功。

优化配置

数据目录迁移

默认docker数据存储目录为/var/lib/docker目录,随着镜像和容器的使用此目录会越来越大,建议在初始安装时就对这个目录进行迁移。 1. 停止docker服务

sudo systemctl stop docker
  1. 创建数据目录
# 备份原有数据目录
mv /var/lib/docker /var/lib/docker.bak
# 选择一个空前空间较大的分区创建数据存储目录
mkdir /opt/docker
# 链接到默认路径
ln -s /opt/docker /var/lib/docker
  1. 启动docker服务
sudo systemctl start docker

启动参数优化

  1. daemon.json参数定义

    /etc/docker/daemon.json

cat << EOF > /etc/docker/daemon.json
{  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://almtd3fa.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
 "dns": ["223.5.5.5", "223.6.6.6"],
 "exec-opts": ["native.cgroupdriver=systemd"],
 "max-concurrent-downloads": 10,
 "max-concurrent-uploads": 5,
 "log-opts": {
    "max-size": "100m",
    "max-file": "5"
    },
    "live-restore": true
}
EOF
  1. 重启docker服务
sudo systemctl restart docker

```