共有 4 篇文章
修改Docker容器占用的IP段
2025-03-16 - 2025-03-17

docker默认情况下会使用整个172.16.0.0/12网段, 很明显对于个人用户, docker占用了太多的内网IP, 容易与其他内网网段冲突

1. 停用所有镜像

1# 停止
2docker stop $(docker ps -aq)
3# 删除
4docker rm $(docker ps -aq)

2. 清楚已经分配的网络

1docker network prune

3. 编辑配置文件

1# 创建文件
2vim /etc/docker/daemon.json
  • 我将172.18.0.1/16分配给默认网段, 一般情况下/24也够用
  • 我将172.19.0.0/16分配给docker默认的ip段分配器, /26限制每次分配的网段大小
1{
2  "bip": "172.18.0.1/16",
3  "default-address-pools": [
4    {"base": "172.19.0.0/16", "size": 26}
5  ]
6}

4. 应用配置

1systemctl daemon-reload
2systemctl restart docker
暴力删除registry镜像文件
2024-01-29 - 2024-09-18

暴力删除registry镜像文件

直接进入这个目录删除仓库 /HHD4/docker/docker_hub/docker/registry/v2/repositories

进入docker实例执行垃圾回收 /bin/registry garbage-collect /etc/docker/registry/config.yml

重启registry

Docker Install
2023-02-14 - 2024-09-18

Debian

官方安装文档https://docs.docker.com/engine/install/debian/

Uninstall old versions

1apt-get remove docker docker-engine docker.io containerd runc

Set up the repository

 1# Add Docker's official GPG key:
 2apt-get update
 3apt-get install ca-certificates curl
 4install -m 0755 -d /etc/apt/keyrings
 5curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
 6chmod a+r /etc/apt/keyrings/docker.asc
 7
 8# Add the repository to Apt sources:
 9echo \
10  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
11  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
12  tee /etc/apt/sources.list.d/docker.list > /dev/null
13apt-get update

Install Docker Engine

1apt-get update
2apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Portainer管理多台服务器的docker

1vim /usr/lib/systemd/system/docker.service
2#找到ExecStart这行 在后面加上-H tcp://0.0.0.0:2375  其它方式一会docker就挂了 而且重启无效 
3ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
4systemctl daemon-reload
5systemctl restart docker
Manual
2019-09-08 - 2024-09-18

上传镜像

1docker images
2docker login
3docker tag hello-world etanqil/test
4docker push etanqil/test

停止、删除所有的docker容器和镜像

1# 列出所有的容器 ID
2docker ps -aq
3# 停止所有的容器
4docker stop $(docker ps -aq)
5# 删除所有的容器
6docker rm $(docker ps -aq)
7# 删除所有的镜像
8docker rmi $(docker images -q)

现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了 docker system prune的命令,针对container、image可以使用 docker container prunedocker image prune 命令。