Ubuntu系统Docker环境安装完整指南

本文提供与CentOS操作对应的Ubuntu系统Docker安装全流程,包含国内镜像加速等优化配置

基础安装准备

系统环境检查

1
2
uname -r  # 查看内核版本(需3.10以上)
lsb_release -a # 查看Ubuntu版

系统更新

1
sudo apt update && sudo apt upgrade -y

安装依赖包

1
2
3
4
5
6
sudo apt install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common

Docker引擎安装

添加官方GPG密钥

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置稳定版仓库(国内用户推荐)

1
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装Docker

1
2
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

验证安装

1
sudo docker --version

预期输出示例:Docker version 20.10.12, build e91ed57

Docker Compose安装

方案A:官方安装

1
2
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

方案B:国内镜像安装

1
2
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

验证安装

1
docker-compose --version

预期输出:Docker Compose version v2.24.1

服务管理命令

命令 说明
sudo systemctl start docker 启动Docker服务
sudo systemctl enable docker 设置开机自启
sudo systemctl restart docker 重启服务
sudo systemctl status docker 查看服务状态

国内镜像加速配置

创建配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF

重启生效

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

常用操作命令速查

1
2
3
4
5
6
7
8
9
10
11
12
13
镜像管理

docker search ubuntu # 搜索镜像
docker pull ubuntu:20.04 # 拉取镜像
docker images # 查看镜像
docker rmi <IMAGE_ID> # 删除镜像

容器管理

docker ps # 查看运行中容器
docker ps -a # 查看所有容器
docker rm <CONTAINER_ID> # 删除容器
docker exec -it <ID> bash # 进入容器

完整卸载Docker

1
2
3
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

注意事项:生产环境不建议开启远程API端口,如需开发调试可临时配置-H tcp://0.0.0.0:2375参数

部署中遇到的问题

unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.48/images/system/big-market:1.0-SNAPSHOT/json”: dial unix /var/run/docker.sock: connect: permission denied

确保 WSL 用户已加入 docker 组**

在 WSL 终端 执行以下命令:

1
2
3
4
检查当前用户是否在 docker 组

groups | grep docker

如果没有,将当前用户加入 docker 组

1
sudo usermod -aG docker $USER

重启 Docker 服务

1
sudo service docker restart

退出 WSL 终端并重新登录(或重启 WSL),使组权限生效。


修改 docker.sock 权限(临时方案)

如果仍无法访问,可以尝试临时放宽权限(不推荐长期使用):

1
sudo chmod 666 /var/run/docker.sock

⚠️ 这会让所有用户都能访问 Docker,存在安全风险,仅用于测试。


确保 IDEA 使用正确的 Docker 连接方式

在 IDEA 设置(Settings/Preferences)中:

  1. 打开 Build, Execution, Deployment > Docker

  2. 检查 Docker 的连接配置:

    • Engine API URL 应为:

      1
      unix:///var/run/docker.sock
    • 如果使用 WSL 2,确保 IDEA 的 Docker 插件选择了正确的 WSL 后端(如 Ubuntu-20.04)。


检查 WSL 和 Windows 的 Docker 集成

  • 确保 Docker Desktop 已启用 WSL 2 集成

    1. 打开 Docker Desktop 设置。

    2. 进入 Resources > WSL Integration

    3. 勾选你的 WSL 发行版(如 Ubuntu-20.04)。

    4. 点击 Apply & Restart

  • 如果使用纯 WSL 2 的 Docker(无 Docker Desktop)
    确保 Docker 服务已启动:

    1
    sudo service docker start

验证 Docker 是否正常运行

在 WSL 终端运行:

1
docker ps

如果正常返回容器列表,说明 Docker 本身没问题,问题出在 IDEA 的连接配置或权限。

重启IDEA

环境报错问题:Error Get “https://registry-1.docker.io/v2/“

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
sudo vim /etc/docker/daemon.json

### 添加已下内容
{
"registry-mirrors":
[
"https://cr.laoyou.ip-ddns.com",
"https://docker.1panel.live",
"https://image.cloudlayer.icu",
"https://hub.fast360.xyz",
"https://docker-0.unsee.tech",
"https://docker.1panelproxy.com",
"https://docker.tbedu.top",
"https://dockerpull.cn",
"https://docker.m.daocloud.io",
"https://hub.rat.dev",
"https://docker.kejilion.pro",
"https://docker.hlmirror.com",
"https://docker.imgdb.de",
"https://docker.melikeme.cn",
"https://ccr.ccs.tencentyun.com",
"https://pull.loridocker.com",
"https://ox288s4f.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://mirror.ccs.tencentyun.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.ustc.edu.cn"
]
}

配置重新加载:

1
sudo systemctl daemon-reload

重启Docker服务:

1
sudo systemctl restart docker

夕一昂响:收到一位大神点播,我的问题就是配置的镜像库里没有小傅哥写的这些镜像,换了很多国内镜像库都不靠谱,导致默认走国外的docker远程库去拉太慢就超时了,所以在执行docker-compose up -d之前,可以先执行docker pull registry.cn-hangzhou.aliyuncs.com/xfg-studio/mysql:8.0.32提前通过这个镜像库一个个拉取好镜像再执行就可以了,亲测镜像很全,想拉取什么镜像直接替换下镜像名和版本号直接执行docker pul就可以,收到大神推荐,本人也传播一下,希望后面碰见的伙伴可以快速解决

2024-06-28 00:33

1

ywyy 回复 夕一昂响:

2024-06-30 14:33

Rain 回复 ywyy:b站有教程,也利用阿里云创建私有镜像仓库 ,然后在dockercompose换源

2024-07-22 14:12

dadada 回复 夕一昂响:如果用windows下的docker直接执行也会拉不下来 请问怎么办呢?

2024-07-25 14:46

Pale 回复 夕一昂响:有ti子的小伙伴,可以开了之后装

2024-08-01 15:00

勿纵 回复 dadada:直接把镜像分别换成
Docker拉取的Mysql镜像:registry.cn-hangzhou.aliyuncs.com/xfg-studio/mysql:8.0.32
Docker拉取的alpine镜像:registry.cn-hangzhou.aliyuncs.com/xfg-studio/alpine:3.18.2

2024-09-29 22:01