Ubuntu 系统安装 Docker
安装 Docker CE 有多种方法,下面是最简单的通过Docker仓库的安装方法,其他方法参见官方文档。
设置仓库#
-
刷新软件包
sudo apt-get update
-
安装必要的软件包
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
-
添加 Docker 官方 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证指纹是否为
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
, 可以通过搜索指纹的后8位来进行验证。sudo apt-key fingerprint 0EBFCD88 result: pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
-
使用下面的命令添加 稳定版 仓库
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
安装 Docker CE#
-
刷新软件包
sudo apt-get update
-
安装最新版的 docker ce 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
-
通过运行
hello-world
镜像来验证是否安装成功sudo docker run hello-world
Docker CE 安装完成后,会建立
docker
用户组,但是没有用户分配,所以需要通过sudo
来运行 Docker 命令。
其他设置#
国内容器镜像加速#
使用加速器可以提升获取Docker官方镜像的速度,下面使用阿里云镜像进行加速。
通过修改daemon配置文件/etc/docker/daemon.json
来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://jjzi6741.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
使用非 root 用户管理运行 Docker#
参考链接
Docker 守护进程绑定在 Unix socket 而不是 TCP 端口。默认情况下 Unix socket 归属于 root
用户,其他用户只能通过 sudo
命令访问。所以 Docker 守护进程总是以 root
用户来运行。
如果你不希望每次运行 docker
命令时在前面加上 sudo
,你可以创建一个 docker
用户组并把用户加进去。当 Docker 守护进程启动时,会创建一个 Unix socket 供 docker
用户组成员访问。
警告
docker
用户组成员和root
用户有相同的权限,请查看 Docker Daemon Attack Surface 以了解更多关于系统安全的影响。
创建 docker
用户组并添加你的用户
-
创建
docker
用户组sudo groupadd docker
-
添加你的用户到
docker
用户组sudo usermod -aG docker $USER
-
重新登录以试权限生效。
-
验证是否可以不使用
sudo
命令来运行docker
docker run hello-world
这个命令会下载一个 test 镜像并在容器中运行。运行完成后,会显示欢迎信息并退出。
如果你在把用户加到
docker
用户组之前使用了sudo
运行过 Docker 命令,可能会遇到下面的错误提示,是因为~/.docker/
权限不对导致的。WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
解决这个问题,可以通过删除
~/.docker/
目录(自定义设置会丢失),或者用下面的命令来更改权限。sudo chown "$USER":"$USER" /home/"$USER"/.docker -R sudo chmod g+rwx "$HOME/.docker" -R
安装 Docker Compose#
参考链接
在 Linux 系统,可以通过 Compose repository release page on GitHub 来下载 Docker Compose 二进制文件。
对于
alpine
系统,需要安装以下依赖包:py-pip
,python-dev
,libffi-dev
,openssl-dev
,gcc
,libc-dev
make
-
运行下面命令下载最新稳定版 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载不同的版本,更改命令中的版本号即可。
-
给文件加上可执行权限
sudo chmod +x /usr/local/bin/docker-compose
注意: 如果安装后执行
docker-compose
失败,请检查PATH
变量。亦可以建立软连接。
比如:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
(可选), 为
bash
和zsh
安装 command completion 。 -
验证安装是否成功
$ docker-compose --version docker-compose version 1.24.0, build 1110ad01
更多技术文章,请访问我的个人网站:https://www.codingbit.net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· 工良出品 | 长文讲解 MCP 和案例实战
· 一天 Star 破万的开源项目「GitHub 热点速览」
· 多年后再做Web开发,AI帮大忙
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 别再堆文档了,大模型时代知识库应该这样建