Docker常用命令

容器&镜像操作

进入容器

1
docker exec -it <dockerId> /bin/bash

从dockerfile构建镜像

1
2
docker build -t [自定义名称]:[自定义tag] .
注意最后有个点

从镜像启动环境(随机端口)

1
docker run -itd -P [指定镜像名称]:[指定镜像tag]

从镜像启动环境(指定端口,如果要映射多个端口,则需要多个-p参数)

1
docker run -itd -p [主机端口]:[容器端口] [指定镜像名称]:[指定镜像tag]

列出镜像对外开放的端口

1
docker inspect --format='{{.Config.ExposedPorts}}' a8fb5a6d1b4d

删除镜像

1
2
3
4
docker rmi [镜像名:tag或id]

如果commit之后删不掉原来的镜像:
docker rmi [镜像名:tag]

修改镜像tag

1
docker tag [要修改的镜像id] [新镜像名称]:[新tag]

列出所有容器

1
docker ps -a

列出运行中的容器

1
docker ps

停止容器

1
docker stop [容器名或ID]

启动停止的容器

1
docker start [容器名或ID]

删除指定容器

1
docker rm [容器名或ID]

删除所有容器

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

删除所有镜像

1
docker rmi -f $(docker images -a -q)

重置Docker

1
docker system prune -a -f

将容器保存为新的模板镜像

1
docker commit [容器id]  [要保存的镜像名]:[标签]

导出tar包

1
docker save > xxx.tar [name:tag]

导入tar包

1
docker load -i [xxx.tar]

镜像迁移

1
2
3
4
5
pull
docker pull registry.cn-hongkong.aliyuncs.com/toys/viper:latest

打包
docker save -o qwe.tar registry.cn-hongkong.aliyuncs.com/toys/viper:latest

文章导航:

https://blog.csdn.net/weixin_28871731/article/details/112110328

文件操作

拷贝文件到docker容器中

1
docker cp ./[物理机上文件] [容器ID]:[保存位置绝对路径如/usr/local/samba/etc/smb.conf]

dockerfile

从已有的image自动映射端口:

1
2
FROM vulhub/spring-messaging:5.0.4
EXPOSE 8080

注意点

  1. docker save 应该指定镜像名和tag,不应该指定ID,尤其是在更新镜像版本的时候
  2. docker rmi 应该指定镜像名和tag,不应该指定ID,尤其是在更新镜像版本的时候