Docker镜像及容器基本操作命令

深藏阁楼爱情的钟 2024-04-03 12:57 180阅读 0赞

目录

一、Docker镜像操作

1、搜索镜像:docker search 关键字

2、拉取镜像:docker pull 镜像名称[:tag(标签)]

3、 查看所有镜像:docker images [选项]

4、根据镜像ID号获取镜像详细信息:docker inspect 镜像ID

5、为本地镜像添加新的标签:docker tag 名称 :[标签] 新名称:[新标签]

6、 删除镜像:docker rmi 仓库名称:标签 或者 docker rmi 镜像ID

7、存出镜像和存入镜像

7.1、存出镜像 docker save -o 存贮的文件名 存储的镜像

7.2、导入镜像 docker load < 存出的文件

8、上传镜像 docker push 仓库名称:标签

9、删除本地所有镜像 docker rmi `docker images -q`

二、容器操作

1、容器的创建与启动

1.1、容器的创建: docker creat [选项] 镜像 运行的程序

1.2、容器的启动:docker start 容器的ID

1.3、创建并启动容器:docker run [选项] 镜像名 /bin/bash

ps: docker run [参数] /bin/bash

2、查看当前运行状态的容器(当前为UP状态) docker ps

3、查看所有容器的包括正在运行和停止运行的容器 docker ps -a编辑

4、终止容器运行:docker stop/start/restart 容器ID/名称

5、容器的进入 docker exec [选项] 容器ID/名称

6、容器的导出 :docker export 容器ID/名称 > 文件名

7、 容器的导入:cat 文件名 | docker improt -生成的镜像名称:标签

8、 删除容器: docker rm 容器ID/名称

9、查看版本:docker version

10、检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点): docker info

11、容器提交为镜像:docker commit [选项] [容器ID/容器名] [仓库名:标签]

12、查看网络列表:docker network ls

13、自建bridge网络 :docker network creat

14、复制:docker cp

14.1、把容器内的文件复制到物理机

14.2、把物理机的文件复制到容器中


一、Docker镜像操作

1、搜索镜像:docker search 关键字

例如:搜索关键字为lamp的镜像

7cdfba5359ff43b7b2327e03f44c346e.png

2、拉取镜像:docker pull 镜像名称[:tag(标签)]

ps:(加标签和不加标签的区别)①、docker pull redis # 默认下载最新版本

②、docker pull redis:5.0 # 下载指定版本

ba7adb9dcc614ced9ab9cd148c72892d.png

3、 查看所有镜像:docker images [选项]
















选项 说明
-a 列出所有镜像
-q 只显示镜像ID

c3e8d73c0529492f9c84f7dce307a5bc.png

4、根据镜像ID号获取镜像详细信息:docker inspect 镜像ID

ad17eb97e8ba41a48a2465f695b66d52.png

5、为本地镜像添加新的标签:docker tag 名称 :[标签] 新名称:[新标签]

cc1295f0178b42fd999baa00b6137677.png

6、 删除镜像:docker rmi 仓库名称:标签 或者 docker rmi 镜像ID

PS:当删除的镜像有标签时,当删除其中之一,并不影响镜像文件,但只剩最后一个镜像的话请慎删,会彻底删除

ad5de9538b8c4cc985a01a08a837a129.png

7、存出镜像和存入镜像

7.1、存出镜像 docker save -o 存贮的文件名 存储的镜像

需要把镜像保存成本地文件,这一过程叫做存出镜像

2c256bab08774854ac05a88b57e5ca1f.png

7.2、导入镜像 docker load < 存出的文件

把上面存出的文件导入到镜像库中,这一过程叫导入

c635bd2ce99f4a329f3078b19fe92f66.png

8、上传镜像 docker push 仓库名称:标签

9、删除本地所有镜像 docker rmi `docker images -q`

71c98c61c7d44c13a636bc9f420d10c2.png

二、容器操作

1、容器的创建与启动

1.1、容器的创建: docker creat [选项] 镜像 运行的程序
















常用选项 说明
-i 让容器的输入保持打开
-t 让docker分配一个伪终端

例如:创建一个容器nginx

1784596f536242c8b7b0414c2bee49c5.png

1.2、容器的启动:docker start 容器的ID

7260bfa42f514ee0b4b1482d6ddbbc97.png

1.3、创建并启动容器:docker run [选项] 镜像名 /bin/bash




































选项 说明
-d 后台运行容器并返回容器ID,即守护式容器
-i 以交互模式运行容器,通常与-t同时使用
-t  为容器重新分配一个伪输入终端
— name 容器名字
-P(大写) 随机端口映射,容器内部端口随机映射到主机的端口
-p(小写) 指定端口映射,格式:主机(宿主)端口:容器端口
—volume,-v 绑定一个卷

例如1:使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx

aeeaea7cb0c6469d86e70afd7cb98f41.png

例如2: 使用镜像nginx:nginx以后台模式启动一个容器,并将容器的80端口映射到主机随机端口

ee74ee79e3754723baedd9338f2100fc.png

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

eb1fdfbf7da74c2d819a2dbded71912d.png

当利用docker run 来创建容器时,docker在后台标准运行过程是这样的:

检查本地是否存在指定的镜像,当镜像不存在时,会从公共仓库下载;如过本地有,直接加载。

" class="reference-link">c70ac9c5eee64b7d83107558a317a522.png

ps: docker run [参数] /bin/bash

docker run 包含docker creat和docker start 两条命令的职能

-i:保持容器运行。通常与-t同时使用,加入-it这两个参数之后,容器创建后自动进入容器中,退出容器后,容器自动关闭

-t:为容器分配一个伪终端,通常与-i同时使用

-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器。退出后,容器不会关闭

-it 创建的容器一般称为交互式容器(特点: exit退出容器, 容器立马自动关闭)

-id创建的容器一般称为守护式容器(特点: 以守护(后台)模式启动容器, 不会进入容器)

2、查看当前运行状态的容器(当前为UP状态) docker ps
























选项 说明
-a  显示所有的容器,包括未运行的
-q 只显示运行状态的容器ID号
-aq 显示所有的容器,包括未运行的,只显示他们的容器ID号
-s 显示容器的大小(size)

" class="reference-link">46d2f4c90c6d43b7ab06d0cb763aaac8.png

" class="reference-link">3、查看所有容器的包括正在运行和停止运行的容器 docker ps -a9639787e1ae14854ac970cdd0ebce2a9.png

4、终止容器运行:docker stop/start/restart 容器ID/名称

5b78fa370eba4414b124d6c6be2a05d0.png

5、容器的进入 docker exec [选项] 容器ID/名称

-i :表示让容器的输入保持打开,

-t:表示让docker分配一个伪终端

-c:免交互直接在容器内执行命令

使用 docker exec方式进入容器,前提是容器必须是开启状态

6f91c4980a234180986cdeba46db82aa.png

" class="reference-link">3bcb6202b6da4a1eab663881074ae5d5.png

#

#

6、容器的导出 :docker export 容器ID/名称 > 文件名

用户可以讲任何一台容器从一台机器迁移到另一台机器上:

将创建好的容器——>导出为文件;文件——>导入到其他机器再做处理

a7497c81224b49939c03e8e04dd3b8a9.png

7、 容器的导入:cat 文件名 | docker improt -生成的镜像名称:标签

23bb854180e54652a68f957bf4704c2b.png

8、 删除容器: docker rm 容器ID/名称

PS : docker rm 容器ID/名称——》可以删除一个禁止的容器

docker rm -f 容器ID/名称——》可以删除一个正在运行的容器

6e5f2745fd104d099388ab83bc6bc7cd.png

494a061f02464b1e95eb72244543fa15.png

9、查看版本:docker version

  1. [root@zwb_docker ~]# docker version
  2. Client: Docker Engine - Community
  3. Version: 20.10.18
  4. API version: 1.41
  5. Go version: go1.18.6
  6. Git commit: b40c2f6
  7. Built: Thu Sep 8 23:14:08 2022
  8. OS/Arch: linux/amd64
  9. Context: default
  10. Experimental: true
  11. Server: Docker Engine - Community
  12. Engine:
  13. Version: 20.10.18
  14. API version: 1.41 (minimum version 1.12)
  15. Go version: go1.18.6
  16. Git commit: e42327a
  17. Built: Thu Sep 8 23:12:21 2022
  18. OS/Arch: linux/amd64
  19. Experimental: false
  20. containerd:
  21. Version: 1.6.8
  22. GitCommit: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
  23. runc:
  24. Version: 1.1.4
  25. GitCommit: v1.1.4-0-g5fd4c4d
  26. docker-init:
  27. Version: 0.19.0
  28. GitCommit: de40ad0

主要分为client端和server端:client端指的是命令行;server端指的是内核

10、检查当前容器的安装情况(包括镜像数、容器书、多少个物理机节点): docker info

09e41152695b434d957f6fc431a661d0.png

881148de27e04d53a7b77890afce244a.png

11、容器提交为镜像:docker commit [选项] [容器ID/容器名] [仓库名:标签]

语法格式:

docker commit [选项] [容器ID或容器名] [仓库名:标签]
























选项 说明
-a 修改人
-m 备注
-c 使用dockerfile指令来创建镜像
-p 在commit时,将容器暂停

例如:将容器ID为9ca35195df5a,保存为新的镜像,并添加提交人的说明信息。

ff2184a58e4e4e96b90872333120e5d8.png

12、查看网络列表:docker network ls

e0d2a98fce6d4885ac8bbcb8d547f631.png

13、自建bridge网络 :docker network creat

5fb98d859232431bb6170477ac90b0b9.png

14、复制:docker cp

14.1、把容器内的文件复制到物理机

语法格式:docker cp 容器ID:绝对路径 (物理机)绝对路径

9bea3a263c3341e3867a551ad063c239.png

14.2、把物理机的文件复制到容器中

语法格式:docker cp (物理机)绝对路径 容器ID:绝对路径

2816ba89d2eb43fbb39ee72f6c804c2d.png

15、暂停容器中的所有进程:docker pause

16、查看容器中运行的进程信息: docker top

17、显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等

docker stats

发表评论

表情:
评论列表 (有 0 条评论,180人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Docker镜像容器命令

             Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包