Docker的常用命令

注:本文是本人根据B站【狂神说Java】Docker视频所写,仅供学习参考。

Docker的常用命令

帮助命令
docker version  # docker当前版本信息
docker info     # docker系统信息
docker --help   # 帮助命令

帮助文档的地址:https://docs.docker.com/engine/reference/commandline/build/

镜像命令
查看本地的主机上的镜像 docker images
docker images 

# 可选项
-a,--all		#列出所有镜像
-q,--quiet		#只显示镜像的ID

在这里插入图片描述

搜索镜像 docker search
docker search mysql		# 搜mysql镜像

# 可选项
--filter=STARS=3000		#搜索镜像STARS大于3000的

在这里插入图片描述

下载镜像 docker pull
docker pull mysql		#下载mysql镜像 默认laste 版本
docker pull mysql:5.7	#下载5.7版本mysql
删除镜像 docker rmi
docker rmi -f 容器ID		#删除知道的容器(容器ID)
docker rmi -f 容器ID 容器ID 容器ID	#删除多个容器
docker rmi -f $(docker images -aq)	#删除全部容器

在这里插入图片描述

容器的命令
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
新建容器并启动
docker run [可选参数] image

# 参数说明
--name="Name"		容器名字
-d					后台方式运行
-it					使用交互方式运行,进入容器查看内容
-p(小写)			   指定容器的端口 -p 8080:8080
	-p	ip:主机端口:容器端口
	-p	主机端口:容器端口(常用)
	-p	容器端口
-P(大写)			   随机指定端口

启动并进入容器
docker run -it centos /bin/bash

exit	#从容器中退出主机

在这里插入图片描述

列出所有的运行的容器
docker ps		#列出当前正在运行的容器
docker ps -a	#列出当前正在运行的容器+历史运行过的容器
docker ps -n=?	#显示最近创建的几个容器
docker ps -q	#只显示容器的编号
退出容器
exit		#直接退出容器并退出
Ctrl + P + Q 	#容器不停止退出
删除容器
docker rm 容器ID					#删除指定的容器,不能删除正在运行的容器如果要删除 rm -f
docker rm -f $(docker ps -aq)	  #删除所有容器
docker ps -a -q|xargs docker rm		#删除所有容器
启动和停止容器的操作
docker start 容器ID		#启动容器
docker restart 容器ID		#重启容器
docker stop 容器ID		#停止当前正在运行的容器
docker kill 容器ID		#强制停止当前运行的容器

常用的其他命令

后台启动容器
# 命令 docker run -d 镜像名
docker run -d centos

# 问题docker ps,发现centos停止了
# 常见的坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供给服务,就会立刻停止,就没有程序了
查看日志
docker logs -f -t --tail 10 容器ID
# docker logs -f -t --tail 108f0d8c10c61a
# 自己编写一段shell脚本
# docker run -d centos /bin/sh -c "while true;do echo CentOS 7;sleep 1;done"
# docker logs -f -t --tail 108f0d8c10c61a

#显示日志
-f		# 跟踪日志输出
-t		# 显示时间戳
--tail number # 显示日志条数
查看容器中进程信息
docker top 容器ID

在这里插入图片描述

查看容器元数据
docker inspect 容器ID
进入当前正在运行的容器
# 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

# 命令
docker exec -it 容器ID /bin/bash
# 测试
[root@MiWiFi-R3600-srv /]# docker exec -it 8f0d8c10c61a /bin/bash
[root@8f0d8c10c61a /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

# 方式二
docker attach 容器ID
# 测试
[root@MiWiFi-R3600-srv ~]# docker attach 8f0d8c10c61a
正在执行当前的代码....

# docker exec	# 进入容器后开启一个新的终端,可以在里面操作
# docker attach # 进入容器正在执行的终端,不会启动新的进程。 
从容器内拷贝文件到主机
docker cp 容器ID:容器内路径 目的主机路径

# 测试
# 进入容器
[root@MiWiFi-R3600-srv ~]# docker attach 4abf85b5acc0
# 穿件一个文件
[root@4abf85b5acc0 /]# touch centos.java
[root@4abf85b5acc0 /]# ls
bin  centos.java  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@4abf85b5acc0 /]# exit
exit
# 将文件从容器内拷贝到主机上
[root@MiWiFi-R3600-srv /]# docker cp 4abf85b5acc0:/centos.java /
[root@MiWiFi-R3600-srv /]# ls
bin  boot  centos.java  dev  etc  hme  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
设置开机启动
# 查看已启动的服务
systemctl list-units --type=service

# 查看是否设置开机启动
systemctl list-unit-files | grep enable

# 设置开机启动
systemctl enable docker.service

# 关闭开机启动
systemctl disable docker.service

# docker容器设置自动启动
# 启动时加--restart=always

Flag				Description
no					不自动重启容器. (默认value)
on-failure 			容器发生error而退出(容器退出状态不为0)重启容器
unless-stopped 		在容器已经stop掉或Docker stoped/restarted的时候才重启容器
always 				在容器已经stop掉或Docker stoped/restarted的时候才重启容器

# 如果已经过运行的项目
# 如果已经启动的项目,则使用update更新:
docker update --restart=always 容器名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值