Docker 和 Docker Compose 的安装与配置

警告
本文最后更新于 2023-03-07,文中内容可能已过时。

根据不同的系统版本安装 Docker Engine

这个好像没啥用了,配置了还是龟速。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "1m",
    "max-file": "1"
  },
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://registry.docker-cn.com"
  ]
}
EOF

# 重启docker
sudo systemctl restart docker

通过systemd控制docker的修改方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 创建目录
sudo mkdir -p /etc/systemd/system/docker.service.d

# 写入代理配置
cat > /etc/systemd/system/docker.service.d/http-proxy.conf << EOF
[Service]
Environment="HTTP_PROXY=http://192.168.1.192:8118/"
Environment="HTTPS_PROXY=http://192.168.1.192:8118/"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"
EOF

# 加载配置, 重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

# 验证配置
sudo systemctl show --property=Environment docker

# 通过查看日志排错
sudo journalctl -u docker

# 确认代理设置
sudo docker info
sudo systemctl show --property Environment docker
1
2
3
4
5
# 将用户添加到docker组
sudo usermod -aG docker ${USER}

# 打开一个新的shell来更新这个用户的组信息
su - ${USER}

查看位置

1
2
3
4
5
6
# docker info
......
 ID: XHOE:7QS3:JR4F:G67M:XZWR:CW6L:ZDX3:US4Y:XLTM:UNEJ:SZJT:Y4FB
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
......

修改位置

1
2
3
4
# vim /etc/docker/daemon.json
{
  "data-root": "/www/docker"
}

默认docker 如果端口暴露 “0.0.0.0”,不管 UFW 是否设置,外网都能访问这个 IP:Port。如果要控制端口暴露在公网可以实现这个方法解决

https://image.linux88.com/2023/03/07/f8a715583ccc8c16cdc6bc511649c26d.png

1
2
3
sudo apt install bash-completion
sudo curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
source ~/.bashrc

相关内容