一、前期准备
1、防火墙设置
1.如果您使用 ufw 或 firewalld 来管理防火墙设置,请注意,当您使用 Docker 公开容器端口时,这些端口会绕过您的防火墙规则。当您使用 Docker 发布容器的端口时,该容器的进出流量在通过 ufw 防火墙设置之前就会被重定向。Docker 在 nat 表中路由容器流量,这意味着数据包在到达 ufw 使用的 INPUT 和 OUTPUT 链之前就会被重定向。数据包在防火墙规则生效之前就被路由,实际上忽略了您的防火墙配置。
2.Docker 仅兼容 iptables-nft 和 iptables-legacy 。使用 nft 创建的防火墙规则在安装了 Docker 的系统上不受支持。请确保您使用的任何防火墙规则集都是使用 iptables 或 ip6tables 创建的,并将它们添加到 DOCKER-USER 链中,参见数据包过滤和防火墙。
具体点击下面链接查看:
Packet filtering and firewalls
2、操作系统要求
要安装 Docker 引擎,您需要以下 Ubuntu 版本之一的 64 位版本:
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
Docker 引擎适用于 Ubuntu,兼容 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le(ppc64el)架构。
二、安装方法
三、非root用户运行Docker
Docker 守护进程绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,Unix 套接字属于 `root` 用户,其他用户只能使用 `sudo` 访问它。Docker 守护进程始终以 `root` 用户身份运行。
如果您不想在 `docker` 命令前加上 `sudo` ,请创建一个名为 `docker` 的 Unix 组并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个 Unix 套接字,该套接字可供 `docker` 组的成员访问。在某些 Linux 发行版中,使用软件包管理器安装 Docker Engine 时,系统会自动创建此组。在这种情况下,您无需手动创建组。
1、创建 docker 群组并添加您的用户:
sudo groupadd docker
2、添加您的用户到 docker 组。
sudo usermod -aG docker $USER
3、退出并重新登录,或者运行下面命令。
newgrp docker
4、在不使用 sudo 的情况下运行 docker 命令。
docker run hello-world
如果出现以下错误:
WARNING: Error loading config file: /home/user/.docker/config.json –
stat /home/user/.docker/config.json: permission denied此错误表示由于之前使用了
sudo命令,~/.docker/目录的权限设置不正确。
要解决这个问题,要么删除~/.docker/目录(它将自动重新创建,但任何自定义设置都将丢失),要么使用以下命令更改其所有权和权限:sudo chown "USER":"USER" /home/"USER"/.docker -R sudo chmod g+rwx "HOME/.docker" -R
四、Docker配置
1、修改镜像源
创建或修改/etc/docker/daemon.json文件
vim /etc/docker/daemon.json
或:
nano /etc/docker/daemon.json
添加下面内容:
{
"registry-mirrors": [
"https://registry-1.docker.io"
]
}
请修改地址为可用的镜像源
重启docker
service docker restart
查看是否更换成功
docker info
2、配置默认日志驱动程序
Docker 为主机上运行的所有容器提供日志驱动程序,用于收集和查看日志数据。默认的日志驱动程序 json-file 将日志数据写入主机文件系统中的 JSON 格式文件。随着时间的推移,这些日志文件会不断增大,可能导致磁盘资源耗尽。
为避免因过度使用磁盘存储日志数据而产生问题,请考虑以下选项之一:
- 配置
json-file日志驱动程序以启用日志轮转。 - 使用默认执行日志轮转的替代日志驱动程序,例如“local”日志驱动程序。
- 使用将日志发送到远程日志聚合器的日志驱动程序。
Docker卸载
1.卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
2.镜像、容器、卷或自定义配置文件在您的宿主机上不会被自动删除。要删除所有镜像、容器和卷:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
3.删除源列表和密钥环
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc