windows docker常用命令合计

前言

本文汇总docker一些常用命令
一段日子不用,容易忘记,作为备忘录

docker ubuntu 安装

参考 Ubuntu 安装 Docker

wsl docker镜像移动

1
2
3
4
5
6
7
8
9
10
11
备份命令
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar

删除命令
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data

导入命令
wsl --import docker-desktop D:\work\docker\docker-desktop docker-desktop.tar
wsl --import docker-desktop-data D:\work\docker\docker-desktop-data docker-desktop-data.tar

busyboy

BusyBox 是一个集成了一百多个最常用 Linux 命令和工具(如 cat、echo、grep、mount、telnet 、ping、ifconfig 等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”。

1
docker run --name box1 -it --rm busybox sh

–rm 在退出容器时自动销毁该容器

docker compose 修改yml后更新容器

参考Docker Compose更新容器的几种方法
如果已经修改了docker-compose.yml文件,并且希望更新其中的某个容器,可以直接使用docker-compose up -d命令。该命令会更新docker-compose.yml中修改过的服务,并根据修改的设置进行重新配置。例如:

1
docker-compose up -d service-name

其中 service-name是需要更新的服务名。

dokcer 根据container 生成image

1
2
3
4
5
6
7
8
9
10
11
12
13
第一种方法:使用commit

//查看所有的容器
docker container ls -a

//suspicious_mcnulty是原容器name,gmk/centos-vim是新image的REPOSITORY
docker commit centos bivana/centos-env

//查看新镜像
docker image ls

docker push bivana/centos-env

docker 宿主机和容器拷贝文件

1
docker cp 本地路径 容器id或者容器名字:容器内路径

Failed to get D-Bus connection: Operation not permitted

docker 里的centos 如果要运行 systemctl 命令,需要以特权模式运行容器

1
docker run -d --name centos --privileged=true centos:7 /usr/sbin/init

docker 查看容器ip

1
docker inspect container_id

docker 进入当前容器

1
docker exec -it 容器id /bin/bash

docker自定义数据源

参考Docker更换镜像源

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://doublezonline.cloud",
"https://docker.mrxn.net"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

还有一种,参考git的使用阿里云镜像搭建自己的
Docker Images Pusher