Docker常用命令【更新中】

  • Post author:
  • Post category:其他





常用命令



一、服务



1.启动docker服务

systemctl start docker.service



2.设置docker服务开机自启动

systemctl enable docker.service



3.关闭docker服务

systemctl stop docker.service



4.禁止docker服务开机自启动

systemctl disable docker.service



二、镜像



1.查看镜像列表

docker images

在这里插入图片描述




2.打包镜像

docker save -o <打包文件名> <仓库名:版本标签>
# docker save -o nginx.tar nginx:latest



3.加载镜像

docker load -i <打包文件名>
# docker load -i nginx.tar



4.创建镜像

# 1.【拉取】远端镜像仓库 pull
# 从docker官方仓库或镜像拉取nginx
docker pull nginx

# 2.【创建】根据Dockerfile build
# 根据当前目录下的Dockerfile生成镜像,命名为app
docker build -t app .



5.删除所有镜像

docker rmi $(docker images -q)



6.直接从镜像启动容器并进入容器继续执行命令

docker启动的容器必须有一个正在运行的服务,否则就会自动关闭容器,想要直接从镜像启动容器并进入容器继续执行命令的话可以执行下面的命令


docker run -it <仓库名:版本标签> bash
# docker run -i -t continuumio/anaconda3 bash
# -i 让容器的标准输入保持打开
# -t 让docker分配一个伪终端并绑定到容器的标准输入上
# bash 进入容器后执行的命令,bash是一个linux终端交互命令,代表进入linux终端交互



7.打包容器成镜像

docker commit -a="作者" -m="镜像描述" <打包容器id> <自定义镜像名:自定义版本号>
# docker commit -a="ps" -m="语音识别服务基础镜像" efdba544b37f rec-service:0.0.1



8.打包镜像成压缩包

docker save <打包镜像名> | gzip > <压缩包名>.tar.gz 
# docker save rec-service | gzip > rec-service.tar.gz



9.解压镜像压缩包并加载到本地镜像列表

gunzip -c <压缩包名>.tar.gz | docker load
# gunzip -c rec-service.tar.gz | docker load



三、容器



1.查看容器列表及运行状态

docker ps -a

在这里插入图片描述




2.创建并启动容器

docker run --name <容器名> -p 80:80 -d <仓库名:版本标签>
# docker run --name nginx-contain -p 80:80 -d nginx:latest
# --name 给容器取一个名字
# -p 将宿主机端口与容器端口映射,左侧是宿主机端口,右侧是容器端口

在这里插入图片描述




3.启动已创建的容器

docker start <容器id>
# docker start dac2468c32f8



4.停止容器

docker stop <容器id>
# docker stop dac2468c32f8



5.删除容器

docker rm <容器id>
# docker rm dac2468c32f8



6.删除镜像

docker rmi <镜像id>
# docker rm c919045c4c2b



7.打印容器日志

# 输出当前日志到控制台
docker logs <容器id>
# docker logs dac2468c32f8

# 实时打印日志到控制台
docker logs --follow <容器id>
# docker logs --follow dac2468c32f8



8.暂停容器

docker pause <容器id>
# docker pause dac2468c32f8



9.恢复容器

docker unpause <容器id>
# docker unpause dac2468c32f8



10.进入容器执行命令

docker exec -it <容器名> bash
# docker exec -it nginx-contain bash
# docker exec 进入容器内部,执行一个命令
# -it 给当前容器创建一个标准输入、输出终端,允许我们与容器交互
# nginx-contain 创建容器时自定义的容器名
# bash 进入容器后执行的命令,bash是一个linux终端交互命令,代表进入linux终端交互



11.从容器中退出

  1. 可以使用命令
exit
  1. 也可以使用快捷键
ctrl+P+Q

ps:当不能使用命令 exit 退出时可以使用快捷键 ctrl+P+Q 退出,比如你手动进入一个容器,编辑完之后启动了一个服务,这时候服务占据了你的前台命令行,此时你不能使用命令退出,但是可以使用快捷键 ctrl+P+Q 退出




12.删除全部容器

docker rm -f $(docker ps -aq)



13.停止全部容器

docker stop $(docker ps -aq)



14.启动全部容器

docker start $(docker ps -aq)



15.容器开机自启动

# 已存在的容器设置自启动,采用更新容器参数的方式
docker update --restart=always <容器id>
# docker update --restart=always 250288f8fd06

# 容器不存在,而是在启动容器时就设置为自启动
docker run --name <容器名> -p 80:80 -d --restart=always <仓库名:版本标签>
# docker run --name nginx-contain -p 80:80 -d --restart=always nginx:latest



四、数据卷



1.创建数据卷

docker volume create <数据卷名>
# docker volume create html



2.显示一个或多个数据卷的信息

docker volume inspect <数据卷名>
# docker volume inspect html

在这里插入图片描述




3.列出所有的数据卷

docker volume ls



4.删除未使用的数据卷

docker volume prune



5.删除一个或多个指定的数据卷

docker volume rm <数据卷名>
# docker volume rm html



6.启动容器挂载数据卷

ps:数据卷不存在时会自动创建

docker run --name <容器名> -p 80:80 -v <宿主机数据卷名称:容器内目录绝对路径> -d <仓库名:版本标签>
# docker run --name nginx-contain -p 80:80 -v html:/usr/share/nginx/html -d nginx
# 宿主机数据卷自动创建到 /var/lib/docker/volumes/html/_data 目录下,可用命令 docker volume inspect <数据卷名> 查看路径

还可以进行 目录和文件 的挂载,详情参考

https://blog.csdn.net/weixin_43721000/article/details/123519834



版权声明:本文为weixin_43721000原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。