docker速查
🌱 🦤 🌱
关于docker网络
- docker网络模式, 有
host,bridge, …
1 | docker network ls |
1 | docker inspect --format='{{.Name}} => {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) |
1 | sudo iptables -t nat -nvL |
1 | ip route |
host: 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口
bridge: 此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信
docker pull 使用镜像
1 | docker pull docker.nju.edu.cn/atest:latest |
1 | docker tag docker.nju.edu.cn/atest:latest btest:latest |
1 | docker image rm docker.nju.edu.cn/atest:latest |
docker pull 使用代理
1 | sudo mkdir -p /etc/systemd/system/docker.service.d |
1 | sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf |
1 | [Service] |
1 | sudo systemctl daemon-reload |
1 | sudo systemctl restart docker |
docker build 使用代理
1 | docker build --network host --build-arg http_proxy=http://127.0.0.1:10809 --build-arg https_proxy=http://127.0.0.1:10809 |
docker contains 使用代理
1 | docker run -it --rm --network host -e HTTP_PROXY="http://127.0.0.1:10809" -e HTTPS_PROXY="http://127.0.0.1:10809" |
常用命令
- 停止所有容器
1 | docker stop $(docker ps -aq) |
- 上传文件到容器
1 | docker cp testdir container:/ |
加入到docker用户组
1 | sudo groupadd docker #添加docker用户组 |
1 | sudo usermod -aG docker $USER |
查看docker信息
- 查看docker存储位置
1 | sudo docker info | grep "Docker Root Dir" |
- 查看所有容器
1 | docker ps -a |
- 查看images
1 | docker images -a |
- 查看容器对应ip
1 | docker inspect --format='{{.Name}} => {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq) |
- 查看使用量
1 | docker system df |
从image运行容器
- 前台运行
1 | docker run -it --name cptk rockylinux/rockylinux:9.5 /bin/bash |
- 后台运行
1 | docker run -dit --name cptk rockylinux/rockylinux:9.5 /bin/bash |
- 前台运行加上代理
1 | docker run -it --network host --name cptk rockylinux/rockylinux:9.5 /bin/bash |
- 后台运行加上代理
1 | docker run -dit --network host --name cptk rockylinux/rockylinux:9.5 /bin/bash |
- 进入容器,退出会导致容器停止
1 | docker attach cptk |
- 进入容器,退出不会导致容器停止
1 | docker exec -it cptk /bin/bash |
在当前目录下启动容器
1 | docker run -dit --network host --name test_1 -v $PWD:/mnt --privileged=true rockylinux/rockylinux:9.5 /bin/bash |
1 | docker exec -it test_1 /bin/bash |
1 | docker commit test_1 test/mytest |
1 | docker history test/mytest |
从文件启动容器相关
- 从文件启动容器
1 | docker compose --file ~/app/windows/compose.yaml up |
1 | docker-compose up |
1 | docker compose up |
- 从文件撤销所有更改
1 | docker compose down --rmi=all --volumes |
- 从文件撤销所有更改,除了image
1 | docker compose down --volumes |
备份image
- 从镜像保存镜像
1 | docker save rockylinux/rockylinux:9.5 > myrocky.tar |
1 | docker save -o myrocky.tar rockylinux/rockylinux:9.5 |
- 从镜像重载镜像
1 | docker load < myrocky.tar |
1 | docker load -i myrocky.tar |
- 当history太多时
1 | docker run -dit --network host --name vasp chem/vasp:6.5.1 /bin/bash |
1 | docker export vasp > vasp.tar |
1 | docker rm vasp -f |
1 | docker import --change='ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]' --change='CMD ["vasp", "--version"]' --change="WORKDIR /mnt" vasp.tar chem/vasp:6.5.1 |
清除none image
1 | docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') |
1 | docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') |
1 | docker rmi $(docker images | grep "none" | awk '{print $3}') -f |
更改docker存储位置
1 | sudo docker info | grep "Docker Root Dir" |
1 | docker stop $(docker ps -aq) |
1 | sudo systemctl stop docker docker.socket |
1 | sudo mv /var/lib/docker /$HOME/app/docker -f |
1 | sudo ln -sf /$HOME/app/docker /var/lib/docker |
1 | sudo ls -alF /var/lib/ |
1 | sudo unlink /var/lib/docker |
1 | sudo docker info | grep "Docker Root Dir" |
1 | sudo systemctl start docker docker.socket |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 admin🌸!



