1004 字
5 分钟

Docker安装教程(Ubuntu)

一、前期准备#

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)架构。

二、安装方法#

Docker安装官方教程

三、非root用户运行Docker#

Docker 守护进程绑定到 Unix 套接字,而不是 TCP 端口。默认情况下,Unix 套接字属于 `root` 用户,其他用户只能使用 `sudo` 访问它。Docker 守护进程始终以 `root` 用户身份运行。
如果您不想在 `docker` 命令前加上 `sudo` ,请创建一个名为 `docker` 的 Unix 组并将用户添加到其中。当 Docker 守护进程启动时,它会创建一个 Unix 套接字,该套接字可供 `docker` 组的成员访问。在某些 Linux 发行版中,使用软件包管理器安装 Docker Engine 时,系统会自动创建此组。在这种情况下,您无需手动创建组。

1、创建 docker 群组并添加您的用户:

Terminal window
sudo groupadd docker

2、添加您的用户到 docker 组。

Terminal window
sudo usermod -aG docker $USER

3、退出并重新登录,或者运行下面命令。

Terminal window
newgrp docker

4、在不使用 sudo 的情况下运行 docker 命令。

Terminal window
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/ 目录(它将自动重新创建,但任何自定义设置都将丢失),要么使用以下命令更改其所有权和权限:

Terminal window
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

四、Docker配置#

1、修改镜像源#

创建或修改/etc/docker/daemon.json文件

Terminal window
vim /etc/docker/daemon.json

或:

Terminal window
nano /etc/docker/daemon.json

添加下面内容:

{
"registry-mirrors": [
"https://registry-1.docker.io"
]
}

请修改地址为可用的镜像源

重启docker

Terminal window
service docker restart

查看是否更换成功

Terminal window
docker info

2、配置默认日志驱动程序#

Docker 为主机上运行的所有容器提供日志驱动程序,用于收集和查看日志数据。默认的日志驱动程序 json-file 将日志数据写入主机文件系统中的 JSON 格式文件。随着时间的推移,这些日志文件会不断增大,可能导致磁盘资源耗尽。 为避免因过度使用磁盘存储日志数据而产生问题,请考虑以下选项之一:

Docker卸载#

1.卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:

Terminal window
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2.镜像、容器、卷或自定义配置文件在您的宿主机上不会被自动删除。要删除所有镜像、容器和卷:

Terminal window
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

3.删除源列表和密钥环

Terminal window
sudo rm /etc/apt/sources.list.d/docker.list
sudo rm /etc/apt/keyrings/docker.asc

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Docker安装教程(Ubuntu)
https://blog.micar9.com/posts/docker/
作者
bluish
发布于
2025-01-02
许可协议
CC BY-NC-SA 4.0
最后更新于 2025-01-02,距今已过 371 天

部分内容可能已过时

目录