Docker常用命令(镜像、容器)

ops/2024/9/23 6:23:23/

一、镜像

1.1 存出镜像

1.2 载入镜像

1.3 上传镜像

二、容器

2.1 容器创建

2.2 查看容器的运行状态

​2.3 启动容器

2.4 创建并启动容器

docker%20run%20%E5%88%9B%E5%BB%BA%E7%9A%84%E5%AE%B9%E5%99%A8-toc" style="margin-left:40px;">2.5 在后台持续运行 docker run 创建的容器

2.6 终止容器运行

2.7 容器的进入

​2.8把宿主机的文件传入到容器内部

2.9 从容器复制文件到主机

​2.10 容器的导出与导入

2.10.1 导出

2.10.2 导入

2.11 删除容器


一、镜像

1.1 存出镜像

将镜像保存成为本地文件

格式:docker save -o 存储文件名 存储的镜像docker save -o nginx nginx:latest            

1.2 载入镜像

将镜像文件导入到镜像库中

格式:docker load < 存出的文件或docker load -i 存出的文件docker load < nginx
docker load -i nginx

1.3 上传镜像

默认上传到 docker Hub 官方公共仓库,需要注册使用公共仓库的账号。https://hub.docker.com
可以使用 docker login 命令来输入用户名、密码和邮箱来完成注册和登录。
在上传镜像之前,还需要先对本地镜像添加新的标签,然后再使用 docker push 命令进行上传。

二、容器

2.1 容器创建

就是将镜像加载到容器的过程。

新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器

格式:docker create [选项] 镜像

常用选项:

-i:让容器开启标准输入

-t:让 Docker 分配一个伪终端 tty

-it :合起来实现和容器交互的作用,运行一个交互式会话 shell 

docker create -it nginx:latest /bin/bash

2.2 查看容器的运行状态

docker ps -a            #-a 选项可以显示所有的容器



2.3 启动容器

格式:docker start 容器的ID/名称

docker start d78aa153d74b
docker ps -a

2.4 创建并启动容器

可以直接执行 docker run 命令, 等同于先执行 docker create 命令,再执行 docker start 命令。
注意:容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行, 命令结束容器退出。docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据,如果docker容器中 pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉。

当利用 docker run 来创建容器时, Docker 在后台的标准运行过程是:
(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载;
(2)利用镜像创建并启动一个容器
(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;
(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中;
(5)分配一个地址池中的 IP 地址给容器
(6)执行用户指定的应用程序,执行完毕后容器被终止运行。

docker run centos:7 /usr/bin/bash -c ls /
docker ps -a                    #会发现创建了一个新容器并启动执行一条 shell 命令,之后就停止了

docker%20run%20%E5%88%9B%E5%BB%BA%E7%9A%84%E5%AE%B9%E5%99%A8">2.5 在后台持续运行 docker run 创建的容器

需要在 docker run 命令之后添加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。

docker run -d centos:7 /usr/bin/bash -c "while true;do echo hello;done"

docker run -itd --name test1 centos:7 /bin/bash   #创建容器并持续运行容器

2.6 终止容器运行

格式:docker stop 容器的ID/名称

2.7 容器的进入

需要进入容器进行命令操作时,可以使用 docker exec 命令进入运行着的容器

格式:docker exec -it 容器ID/名称 /bin/bash

-i 选项表示让容器的输入保持打开;

-t 选项表示让 Docker 分配一个伪终端。

docker start eceb675768e5                    #进入容器前,确保容器正在运行
docker exec -it eceb675768e5 /bin/bash


 

exit                #退出容器后,容器仍在运行
docker ps -a

docker run -it centos:7 bash      #不加 -d 选项会创建容器后直接进入容器,但是退出容器容器也会停止


2.8把宿主机的文件传入到容器内部

docker cp /opt/abc 7f73a1700ac0:/opt/

2.9 从容器复制文件到主机

docker cp 7f73a1700ac0:/opt/test.txt ./


2.10 容器的导出与导入

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

2.10.1 导出

格式:docker export 容器ID/名称 > 文件名

docker export 7f73a1700ac0 > centos7.tar

2.10.2 导入

格式:cat 文件名 | docker import – 镜像名称:标签

cat centos7.tar | docker import - centos7:test            #导入后会生成镜像,但不会创建容器

2.11 删除容器

格式:docker rm [-f] 容器ID/名称

docker stop 容器ID 

 

docker rm 容器ID              #删除已经终止状态的容器

 

docker rm -f 容器ID             #强制删除正在运行的容器

docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash            #批量停止容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker stop

 

docker ps -a | awk 'NR>=2{print "docker rm "$1}' | bash                #批量删除所有容器
docker ps -a | awk 'NR>=2{print $1}'| xargs docker rm

 

docker images | awk 'NR>=2{print "docker rmi "$3}'| bash            #批量删除镜像
docker images | grep none | awk '{print $3}' | xargs docker rmi        #删除none镜像

 

docker rm $(docker ps -a -q)        #批量清理后台停止的容器


http://www.ppmy.cn/ops/19579.html

相关文章

【VSCode调试技巧】Pytorch分布式训练调试

最近遇到个头疼的问题&#xff0c;对于单机多卡的训练脚本&#xff0c;不知道如何使用VSCode进行Debug。 解决方案&#xff1a; 1、找到控制分布式训练的启动脚本&#xff0c;在自己的虚拟环境的/lib/python3.9/site-packages/torch/distributed/launch.py中 2、配置launch.…

【继承和多态】

闭上眼睛&#xff0c;什么都不听.............................................................................................................. 文章目录 前言 一、【继承】 1.1【继承的概念】 1.2【 继承的定义】 1.2.1【定义格式】 1.2.2【继承关系和访问限定符】 1.2…

如何备考华为OD机试?如何刷题以取得高分?常考的算法类型?

华为OD机试通常指的是华为在线开发&#xff08;Onsite Development&#xff09;机试&#xff0c;是华为公司招聘过程中的一项技术测试&#xff0c;主要针对求职者的编程能力和技术水平进行评估。这种机试通常包括编程题和技术题&#xff0c;目的是测试应聘者在实际工作中遇到问…

【Linux】常用命令

1. 切换命令: cd 语法&#xff1a; cd [相对路径或绝对路径] 使用小tips: 输入文件夹名称过程中可以使用Tab来自动不全。 演示效果&#xff1a; 使用了相对路径和绝对路径&#xff0c;可以看到它们的效果是一样的。 2. 创建目录&#xff1a;mkdir 语法&#xff1a; mkdir […

C语言入门课程学习记录4

C语言入门课程学习记录4 第18课 - signed 与 unsigned第19课 - 再论数据类型第20课 - 经典问题剖析第21课 - 程序中的辅助语句&#xff08;上&#xff09;第22课 - 程序中的辅助语句&#xff08;下&#xff09; 本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程&#xff0c;…

5367: 【图论】奇点数

题目描述 美术老师生病了&#xff0c;今天美术课编程老师来上&#xff0c;给大家一张无向图&#xff0c;包含 n个顶点&#xff08;编号1∼n&#xff09;&#xff0c;m条边&#xff0c;求这张图中的奇点数。 偶点(even vertex)&#xff1a;度数为偶数的顶点称为偶点 奇点(odd…

第106届中国劳动保护用品交易会现场来了,百华鞋业展会现场人气爆棚!

第106届中国劳动保护用品交易会 暨2024中国国际职业安全及健康产业博览会 开幕啦&#xff01; 4月25日&#xff0c;万千瞩目的第106届劳保会在上海新国际博览中心盛装登场&#xff01;一大早&#xff0c;上海新国际博览中心大排长龙&#xff0c;水泄不通。大批远道而来的专家…

『大模型OS笔记』Meta 宣布推出 Llama 3 的介绍视频

Meta 宣布推出 Llama 3 的介绍视频 文章目录 一. Meta 宣布推出 Llama 3 的介绍视频一、引言二、Llama 模型历史回顾三、Llama 3 模型介绍四、Llama 3 背后的开发思路五、许可证和生态系统六、安全和信任七、其他亮点八、未来计划九、现场演示四. 参考文献一. Meta 宣布推出 Ll…