Docker - 常用命令
1、Docker的启动和停止
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
2、容器相关
查看容器
查看正在运行的容器:docker ps
查看所有容器:docker ps -a
查看停止的容器:docker ps -f status-exited
查看最后一次运行的容器:docker ps -l
container_id:运行镜像之后,自动生成的唯一ID
停止容器
docker stop [container_id]
启动容器
docker start [container_id]
重启容器
docker restart [container_id]
移除所有容器
docker rm $(docker ps -aq)
移除单个容器
docker rm [container_id]
3、镜像相关
查看镜像
docker images
repository 直译为“仓库”,日常沟通交流过程中,也可能叫做“镜像名称”;
tag 标签,可以理解成版本号;
image_id 拉取镜像时,系统自动生成的唯一ID。
repostory 和 tag 经常一起使用,比如:tomcat:8,镜像名称是tomcat,版本8
移除镜像
docker rmi [image_id]
docker rmi -f [image_id] 强制删除
拉取镜像
docker pull [repository]
docker pull [repository]:[tag]
4、运行镜像
创建容器
docker run -di --name=[自定义名称] [repository]:[tag] -p 宿主机端口:容器端口 -e 环境变量
--name:为创建的容器命名
-i:表示运行容器
-t:启动容器后,为容器分配一个命令行,通常与 -i 同时使用
-d:守护进程,后台运行该容器,通常与 -i 同时使用
-v 目录映射,容器目录挂载到宿主机目录,格式: [host目录]:[容器目录]
-p:将容器端口映射到主机,可以同时做多个端口映射,格式:[主机(宿主)端口]:[容器端口]
-P:大写的P,会给主机随机分配端口
-e:环境变量,格式:[field]=[value]
-u 以什么用户身份创建容器
-m, --memory bytes 设置容器使用内存最大值
-h, --hostname string 指定容器的 host name
–dns 指定容器 dns 服务器
–restart Docker重启后,容器是否自动重启
–privileged 容器内是否使用真正的 root 权限
样例:
运行tomcat:docker run -d -p 8080:8080 --name tomcat_hello tomcat:8
迁移和备份
容器保存为镜像 :docker commit [容器名称] [镜像名称]
镜像备份(镜像保存为tar文件): docker save -o 名称.tar 镜像名称
镜像恢复和迁移:docker load -i 名称.tar
5、容器设置开机自启
1、使用 docker run 命令运行时
增加 --restart=always 参数即可
2、使用 docker-compose 命令运行时
在 yml 文件中,需要自启动的 service 下
增加 restart: always 项目即可
3、已运行的容器修改其自启动策略
执行命令:
docker update --restart=always [containter_id]
docker container update --restart=[容器策略] [containter_id]
# no 容器退出时不重启容器
# on-failure 只有在非零状态退出时才重新启动容器
--restart=on-failure:【重启次数】
# always 无论退出状态如何都会重启容器