2020-01-17 docker操作命令大全
一、Docker常用命令
0、Docker 进程相关命令
启动docker:
systemctl start docker
停止:
systemctl stop docker
重启:
systemctl restart docker
查看状态;
systemctl status docker
设置开机启动docker服务:
systemctl enable docker
安装部署好Dokcer后,执行的命令是docker开头
总的来说分为以下几种:
docker [run|start|stop|restart|kill|rm|pause|unpause] #容器生命周期管理
docker [ps|inspect|top|attach|events|logs|wait|export|port] #容器操作运维
docker [commit|cp|diff] #容器rootfs命令
docker [login|pull|push|search] #镜像仓库
docker [images|rmi|tag|build|history|save|import] #本地镜像管理
1、镜像命令
搜索镜像
docker search 镜像名称
列出当前系统存在的镜像
docker images
拉取镜像
docker pull image_name
docker pull image_name:tag
#image_name:表示镜像的仓库源名称,TAG:镜像的标签 如果不指定tag 那么默认用最新的
删除镜像
docker rmi 镜像名称/镜像ID
docker rmi -f 镜像名称/镜像ID
#强制删除 如果镜像有容器在运行 那么就需要强制删除 增加 -f 参数
举例
docker search nginx #搜索所有nginx相关的镜像列表(模糊查询)
docker pull nginx #拉取nginx镜像
docker pull nginx:stable #拉取tag为stable的nginx
通过查看镜像 会发现是有两个nginx镜像 ,不过他们版本不一样。
2、容器命令
运行容器
docker run #首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)
docker run -d --name "xiaoxiao" -p 5672:5672 -p 15672:15672 rabbitmq:management
#-d 后台运行
#-p 端口映射 (可以有多个 因为该镜像可能存在多个端口)
#rabbitmq:management (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
#--name 给该容器取个名字
运行容器后 我们可以直接访问rabbitmq 这就是Docker带来的方便
列举当前运行的容器
docker ps
检查容器内部信息
docker inspect 容器名称
停止某个容器
docker stop 容器名称
启动某个容器
docker start 容器名称
移除某个容器
docker rm 容器名称 (容器必须是停止状态)
3、Linux环境下,docker进入mysql(或者其他)镜像的命令
展开
第一步: 找到要修改的镜像
docker ps
第二步: 进入要修改的镜像
docker exec -it e1066fe2db35(镜像ID) /bin/bash
第三步: 进入要修改的文件目录
cd /etc/mysql
第四步: 安装vim
如果不安装vim在使用vim的时候会报找不到。
yum install vim
第五步: 修改my.conf配置文件
第六步: 退出容器
如果要退出bash有2种操作:1)Ctrl + d 退出并停止容器;2)Ctrl + p + q 退出并在后台运行容器;
4、查看某个镜像的日志信息
命令格式:
$ docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) --tail string 从日志末尾显示多少行日志, 默认是all -t, --timestamps 显示时间戳 --until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
例子:
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志::
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
例子:docker logs a351bd7649e9 --since "2022-01-10T10:06:40" --until "2022-01-10T10:06:43"
模糊搜索日志内容( 用 | grep ):
docker logs CONTAINER_ID --tail=100 | grep TEXTINFO
| grep '你想要查询的字符串' -C 50 C 50 表示关键字前后50行 A 50 表示关键字前50行 B 50 表示关键字后50行 信息太多一屏幕显示不下,此时可使用管道符加more或者less cat log.txt | grep '你想要查询的字符串' -C 50 | more cat log.txt | grep '你想要查询的字符串' -C 50 | less less可以向前查看,more只能往后查看
例子:docker logs a351bd7649e9 |grep "error=2022Z441-1" -C 10
如果是想查看持久化的信息,如springboot镜像项目自定义产生的日志文件。
需要:
1、https://exception.site/question/93
2、https://cloud.tencent.com/developer/article/1586004

浙公网安备 33010602011771号