2020-01-17 docker操作命令大全

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

 

posted @ 2020-01-17 18:55  math_lin  阅读(188)  评论(0)    收藏  举报