记录docker的一些问题及解决方法

设置开机自启动

例如启动一个MySQL容器需要开机自启则使用以下命令启动容器

1
2
#  docker run -d --name mysql -p 3306:3306 --restart=always
always - 无论退出状态是如何,都重启容器

如果在启动的时候忘记加该参数两个方法实现自启动

  1. 删除容器重新创建
  2. 更新容器
    下面介绍如何更新
    更新之前查看容器重启策略
1
2
3
4
# docker inspect 521b7fb8f7da|grep -i "RestartPolicy" -A 2
"RestartPolicy": {
"Name": "",
"MaximumRetryCount": 0

解析

1
2
3
4
5
6
7
8
# 通过容器id查看容器信息
docker inspect 521b7fb8f7da
# 管道符
|
# 通过关键字RestartPolicy匹配容器重启策略
grep -i "RestartPolicy"
# 除了匹配的关键字还列出关键字下面两行
-A 2

可以看到重启策略关键字RestartPolicy对应的name为空
通过容器ID更新容器重启策略

1
# docker update --restart=always 521b7fb8f7da

再次查看容器信息
已经设置为总是启动了

1
2
3
4
# docker inspect 521b7fb8f7da|grep -i "RestartPolicy" -A 2
"RestartPolicy": {
"Name": "always",
"MaximumRetryCount": 0

如果想要重启不自动启动则使用以下命令

1
# docker update --restart=no 75038d7a530f

docker网络模式

docker拉取镜像报错

报错

error pulling image configuration: Get https://production.cloudflare.docker.com

解决

能加多少镜像就加多少到/etc/docker/daemon.json文件中,以下是阿里云镜像加速:

1
2
3
4
5
6
7
8
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://9rfsxolh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

还有其他镜像:

1
2
3
4
5
6
7
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://hccwwfjl.mirror.aliyuncs.com"

最新镜像去github上看看

sky22333/Docker-Hub: Docker Hub镜像加速or项目收集 (github.com)


记录docker的一些问题及解决方法
http://example.com/2024/05/05/docker/
作者
sxswldy
发布于
2024年5月5日
许可协议