Docker Commands

🏠 首页 / Docker / Docker 常用命令

Docker 常用命令 #

启动容器命令 #

默认需要sudo权限执行

sudo docker run -d -p 80:80 --name nginx nginx

–name:容器命名

-d:在后台启动

-p:<host端口>:<容器端口>

–rm:容器退出即删除

-it:i-与容器交互,t-终端

以root权限进入容器 #

sudo docker exec -it -u root nginx bash

让容器一直睡眠 #

使用 curlimages/curl 镜像,并让其一直睡眠。

docker run -d --name sleep curlimages/curl sleep infinity

操作镜像命令 #

查看镜像 #

sudo docker images

删除镜像 #

sudo docker rmi <image>
# or
sudo docker image rm <image>

删除所有镜像 #

sudo docker rmi $(docker images -q)

清除未使用镜像 #

sudo docker image prune
# or
sudo docker rmi $(sudo docker images | grep "^<none>" | awk "{print $3}")

模糊清除镜像 #

docker rmi $(docker images | grep 'query' | awk '{print $3}')

操作容器命令 #

查看已经退出的容器 #

sudo docker ps -a | grep Exited

清理已经退出的容器 #

sudo docker rm $(sudo docker ps -qf status=exited)
# or
sudo docker rm `sudo docker ps -a | grep Exited | awk '{print $1}'`

清除所有容器 #

使用 -f 参数才能清除所有容器,不使用则只会清理已经退出的容器

sudo docker rm $(sudo docker ps -a -q) -f

清除孤立容器 #

sudo docker container prune

强制删除容器 #

如果某个 Pod 突然不可用,那么运行在该节点上的 Pod 可能会一直处于 Terminating 的状态,无法移除。这时候如果想强制将该 Pod 从 etcd 数据库中删除,可以使用以下命令:

kubectl delete po <pod-name> -n <namespace> --force --grace-period=0

grace-period 表示过渡存活期,默认 30s,在删除 Pod 之前允许 Pod 慢慢终止其上的容器进程,从而优雅退出,0 表示立即终止 Pod。

打包镜像 #

基于已有 Docker 镜像打包成一个压缩文件:

docker save -o nginx.tar nginx

# 载入镜像,docker load 不能指定载入的镜像名
docker load -i nginx.tar

导出镜像 #

基于运行的容器,导出一个压缩文件:

# 运行一个容器
docker run --name nginx-server -d nginx

docker export nginx.tar nginx-server

# 导入容器,docker import 可以指定镜像名
docker import nginx.tar mynginx

« docker buildx

» Docker Compose 实践