3.docker 常用的操作命令

在这里插入图片描述
0.docker stats:查看CPU状态

[root@hc ~]# docker stats 容器id

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O       PIDS
ab35651b7ae3   myNginx   0.00%     7.781MiB / 3.493GiB   0.22%     3.94kB / 3.54kB   11MB / 8.19kB   4

1.查看docker帮助命令:

docker version  查看docker版本
docker info  查看docker信息
docker help  docker帮助命令

2.docker 项目操作的常用命令

https://docs.docker.com/reference/  官网命令文档

安装部署好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.search
docker search 用来搜索可用的相关镜像。
eg:从docker仓库中搜索mysql镜像:

docker search mysql 
[root@hc /]# docker search mysql 
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                             MySQL is a widely used, open-source relation…   10846     [OK]       
mariadb                           MariaDB Server is a high performing open sou…   4091      [OK]       

2.pull
docker pull 下载指定镜像。

  docker pull image_name
  docker pull image_name:tag

#image_name:表示镜像的仓库源名称,TAG:镜像的标签 如果不指定tag 那么默认用最新的
eg:从docker仓库中下载mysql镜像:(docker pull 时可以指定镜像标签,不指定默认为latest。)

[root@hc /]# docker pull mysql
Using default tag: latest  #不添加tag就是拉取最新版
latest: Pulling from library/mysql
f7ec5a41d630: Pull complete  #分层下载,联合文件系统
9444bb562699: Pull complete 
6a4207b96940: Pull complete 
181cefd361ce: Pull complete 
8a2090759d8a: Pull complete 
15f235e0d7ee: Pull complete 
d870539cd9db: Pull complete 
493aaa84617a: Pull complete 
bfc0e534fc78: Pull complete 
fae20d253f9d: Pull complete 
9350664305b3: Pull complete 
e47da95a5aab: Pull complete 
Digest: sha256:04ee7141256e83797ea4a84a4d31b1f1bc10111c8d1bc1879d52729ccd19e20a  #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  #真实地址

注:

docker pull mysql 
等价于 docker pull docker.io/library/mysql:latest

2.1 删除镜像

docker rmi 镜像名称/镜像ID
docker rmi -f 镜像名称/镜像ID

docker rmi -f ${docker images -aq}  删除所有镜像

#强制删除 如果镜像有容器在运行 那么就需要强制删除 增加 -f 参数

3.images
docker images 查看已下载的本地docker镜像。

docker images

查看中间层镜像:
docker images -a
如果不同镜像之间有复用的中间层,这里就会看见一些没有镜像名和标签的镜像,
很多镜像依赖这些中间层,所以中间层镜像是不能随意删除的。

二:容器的命令

说明:有了镜像 才有容器(有了类 才有类的实例)
4.run

docker run 启动docker镜像为容器。

docker run #首先会从本地找镜像,如果有则直接启动,没有的话,从镜像仓库拉起,再启动)

docker run -d --name "xiaoxiao" -p 5672:5672 -p 15672:15672 rabbitmq:management
#-d 后台运行
#-p 端口映射 (可以有多个 因为该镜像可能存在多个端口) 主机端口:容器端口
#-P 随机指定端口
#rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
#--name  给该容器取个名字
#-it 使用交互方式运行,进入容器查看内容

docker run 有一些参数选项:
-i:interactive交互
-t:tty终端
-d:daemon后台启动
-p:端口映射,前面的端口为宿主机监听端口,后面的端口为容器监听端口
–name:指定启动后容器的名字
–rm:退出容器后删除容器

#使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口
,主机的目录/data映射到容器的/data。

docker run -p 80:80 -v /data:/data  -d nginx:latest  

我们就用Tomcat镜像来启动一个容器

docker pull tomcat
docker run -it --name webdemo -p 80:8080 tomcat /bin/bash

5.ps
docker ps 查看当前正在运行中的容器。

docker ps

参数:
-a:查看当前系统中所有的容器,包括运行中、暂停中和已停止的容器

docker ps -a

6.容器退出

exit     容器 停止,退出
ctrl+p+q  仅退出容器

7.检查容器内部元数据信息

docker inspect 容器名称/容器id

8.移除某个容器

docker rm 容器名称/容器id (容器必须是停止状态)
docker rm -f 容器名称/容器id

docker rm -f ${docker ps -aq) 删除所有容器
docker ps -a -q |xargs docker rm  删除所有容器

9.强制停止 启动(杀掉一个运行中的容器。)

docker |start|stop|restart|kill|   容器ID/容器名称 
启动容器、强制停止容器、重启容器、杀掉运行的容器

10.进入容器内部
sudo docker ps

语法:
docker exec -it 容器ID/容器名称 /bin/bash   #进入容器后,开启一个新的终端,可以在里面操作
或
docker attach 容器ID/容器名称   #进入正在执行的容器,不会开启终端

-it 交互的形式执行

eg:

sudo docker exec -it 775c7c9ee1e1 /bin/bash  

docker exec -it 54541318c571 /bin/bash

#退出
exit

11.导入、导出镜像

docker  save nginx >/tmp/nginx.tar.gz
docker load </tmp/nginx.tar.gz
docker save 镜像名:tag -o xxx.jar
docker load -i 镜像.tar

12查看日志 docker logs

docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
	--tail :仅列出最新N条容器日志
#加入时间戳,且实时展示log
docker logs -ft 容器id|容器名 
#展示log最后5行
docker logs --tail 5  容器id|容器名 

例子:

查看指定时间后的日志,只显示最后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="2021-02-08T13:23:37" --until "2021-02-09T12:23:37" CONTAINER_Id
docker logs  -f mynginx
sudo docker logs -f -t --tail 100 容器名称或容器ID号 

查看最近30分钟的日志

docker logs --since 30m 970dc67458f6

查看某时间之后的日志:

docker logs -t --since="2020-03-08T13:23:37" 970dc67458f6

sudo docker ps

sudo docker logs -f --tail 1000 86aea07bf1ff^C   backend_api

13.复制文件
由于容器的空间相对隔离,改变容器中的文件就变得不是那么容易。使用以下命令可以进行文件交换;

从主机复制到容器
sudo docker cp host_path containerID:container_path

从容器复制到主机
sudo docker cp containerID:container_path(容器中的文件路径) host_path(操作系统中的路径)

14.查看容器内部的进程信息

docker top 容器id|容器名

docker build
docker run
docker commit
docker tag

提交容器为一个新的副本镜像

docker commit -m "提交的备注" -a="镜像作者"  容器id  目标镜像名:[tag]

三:快速删除所有容器/镜像

停用全部运行中的容器:

docker stop $(docker ps -q)

删除全部容器:

docker rm $(docker ps -aq)

一条命令实现停用并删除容器:

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

删除所有镜像

docker rmi `docker images -q`

通过jar包导入镜像

docker load -i 镜像.jar
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值