Docker 镜像及容器命令

发布时间 2023-04-04 09:56:54作者: lclc

授人以鱼不如授人以渔,先列出官方命令文档

docker命令文档地址:https://docs.docker.com/engine/reference/commandline/images/

镜像相关指令

镜像是容器的模板,这句话是考点,记住啦

docker 镜像基本命令大致分为,查看镜像,搜索镜像,下载镜像、删除镜像

1、查看镜像

查看镜像命令/

docker images

查看镜像帮助命令

docker images --help

列出所有镜像

docker images -a

列出镜像ID

docker images -q

列出所有镜像ID

docker images -aq

2、搜索镜像

docker search mysql

 搜索镜像后,会根据搜索到的镜像名称,描述,星数量等信息展示

docker search --help  --查看帮助

根据条件搜索镜像【搜索星星在3000颗以上的MqSQL】

docker search mysql  --filter=stars=3000 

3、下载镜像 docker pull

下载MySQL镜像,没有指定版本号的情况下,会下载最新的MqSQL版本

docker pull mysql

下载指定版本的Mysql镜像

 docker pull mysql:5.7

4、删除镜像 docker rmi -f 

删除指定ID的镜像

docker rmi -f c20987f18b13

删除指定查询范围的镜像

 docker rmi -f $(docker images -aq)

5、commit  制作本地镜像

docker commit jackcentos jacktomcat:20201011

上述指令会删除所有镜像,他的条件是  docker images -aq

我的练习指令如下:

View Code

 容器命令

在容器命令之前,先说个考点,有了镜像,我们就可以创建容器了

首先我们先下载个centos 镜像

docker pull centos

1、新建一个名字为:mycentos 的容器并运行它

docker run -it --name=mycentos centos:latest /bin/bash              -i 运行容器-t 容器启动后进入该容器执行命令,加入这两个参数,容器创建就能登录进去-name 为创建的容器命名

-v 表示目录的映射关系 本地目录和docker容器目录映射起来 前面宿主机目录,后者是容器的目录,可以使用多个-v 注意:最好做目录映射,在宿主机上面修改文件,然后共享到容器中

-d 在run后面加上-d参数,则会创建一个守护进程在后台运行(这样创建后不会自动登录容器,如果只加-it聚会在创建容器后进入容器)

-p 标识端口映射,前者宿主机端口,后者是容器的映射端口,可以使用多个-p做多个端口映射

-P 随机分配端口

–dns 8.8.8.8 指定容器使用的DNS,默认和宿主机一样

–dns-search example.com 指定容器的DNS搜索的域名,默认和宿主机一致

-h “host——001” 指定容器的hostname

-e username=‘cat’ 设置环境变量

–env-file=[] 从指定文件读入环境变量

–cpuset=“0-2” or --cpuset=“0,1,2” 绑定容器到指定CPU运行

-m 设置容器使用内存大小

–net=“bridge” 指定容器的网络连接类型,支持:bridge/host/none/container四种类型

–link=[] 添加连接到另一个容器

2、退出容器且容器停止运行

exit

如果要退出容器但不想让容器停止运行,可以使用快捷键,ctrl+p+q 

使用快捷键后,我们可以看到我们的容器还是在运行的,如下,docker ps

3、查看当前运行的容器

docker ps 

4、查看容器

docker ps -l   --查看最近一次运行的容器
docker ps -a --查看全部容器

 5、查看已经关闭的容器

docker ps -f status=exited

 6、停止运行的容器

docker stop 容器ID 平滑关闭
docker kill 容器ID 强制关闭

7、重启容器restart  暂停容器 pause

docker restart 容器名称OR容器ID

暂停正在运行的容器【暂停后状态:Paused】

docker pause 容器ID
docker pause 757958a37535

【暂停后状态:Paused】:

[root@localhost maomao]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                      PORTS     NAMES
e0297fd9cae3   centos    "/bin/bash"   14 minutes ago   Exited (0) 14 minutes ago             relaxed_bhaskara
757958a37535   centos    "/bin/bash"   27 minutes ago   Up 19 seconds (Paused)   

8、查看容器内运行的进程

docker top 容器名 or 容器ID

9、查看容器日志

  • -t 显示时间
  • -f 追加查看
  • –tail 看最后几条 n是几条
docker logs -t -f  容器ID(or 容器名称)
docker logs -f -t db950b0be73a
docker logs -t -f --tail n 容器ID(or 容器名称)n是显示几条

10、删除容器

docker rm 容器名称 OR 容器ID    容器必须要关闭
docker rm -f 容器名称 OR 容器ID 强制删除容器(运行和未运行的)

11、删除全部正在运行的容器

docker rm -f $(docker ps -q)  -q 是运行容器的容器ID

12、启动一个已存在的容器

复制代码
[root@localhost ~]# docker run -d --name=centostest  centos tail -f /dev/null
---https://www.cnblogs.com/renshengdezheli/p/13941215.html
--https://www.jianshu.com/p/f1e7a1630c64

root@localhost ~]# docker stop ab88724c9272
 docker start ab88724c9272

----

docker restart 68d317dead70  【正在运行的容器可通过restart 进行重启】


复制代码

开启所有容器【启动所有状态为 exited的容器】

docker start $(docker ps -aq -f status=exited)

启动所有容器

docker start $(docker ps -aq) 

13、查看容器执行期间的日志

        基础语法,docker logs 容器ID

docker logs ab88724c9272

 查看指定条数的容器日志【两条语法一致】

docker logs -f -t --tail 10 ab88724c9272
docker logs -tf --tail 10 ab88724c9272

14、进入一个正在运行的容器,attach  和 exec 均可进入一个容器,但exec 进入容器后,使用exit 退出后,容器还会继续运行

docker attach 容器ID
docker exec -it 容器ID /bin/bash

15、查看容器占用的进程信息

docker top 容器ID
[root@localhost ~]# docker top ab88724c9272
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                3356                3333                0                   17:47               pts/0               00:00:00            /bin/bash

16、将docker 容器内文件拷贝到linux服务器上

docker cp 容器ID:容器内文件路径 linux系统路径

docker cp 757958a37535:/home/maomao/maomao.txt /root/maomao

18、查看docker各容器占用的CPU情况

docker stats

17、查看容器的元数据