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

news2024/12/23 17:06:35

一、镜像

1.1 存出镜像

1.2 载入镜像

1.3 上传镜像

二、容器

2.1 容器创建

2.2 查看容器的运行状态

​2.3 启动容器

2.4 创建并启动容器

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 命令,之后就停止了

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.coloradmin.cn/o/1627874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Swift-31-泛型和类型操作

泛型 Swift泛型(generics) 让我们写出的类型和函数可以使用对于我们或编译器都未知的类型。 很多内建类型(包括可空类型、数组和字典)都是用泛型实现的&#xff0c;比如数组和一些集合就是用泛型方式来实现的。 一种运行时进行类型检查的技术&#xff0c;效率高但是不安全。在…

11.JAVAEE之网络原理1

1.应用层(和程序员接触最密切) 应用程序 在应用层这里,很多时候, 都是程序员"自定义"应用层协议的,(当然,也是有一些现成的应用层协议)&#xff08;这里的自定义协议,其实是非常简单的~~协议 >约定,程序员在代码中规定好,数据如何进行传输) 1.根据需求, 明确要传…

使用mapinfo软件的在线地图插件运行错误解决

使用mapinfo软件的在线地图插件运行错误解决 一、如何解决win10/win11家庭版运行MapInfo中的在线地图插件报错【unexpected error&#xff1b;quitting】问题&#xff1f;二、如何解决在线地图切换地图源时的报错问题&#xff1f; 一、如何解决win10/win11家庭版运行MapInfo中的…

C# WinForm —— 10 单选按钮与复选框的介绍与使用

单选按钮 RadioButton 一组单选按钮中&#xff0c;只能选择一个&#xff0c;互相排斥 常用属性、事件&#xff1a; 属性用途(Name)单选按钮的ID&#xff0c;在代码里引用的时候会用到,一般以 rb开头Text单选按钮旁边显示的 文本信息Checked单选按钮的勾选状态Appearance控制单…

JetBrains CLion v2023.3.4 激活版 (C/C++ 集成开发IDE)

前言 JetBrains CLion是一款跨平台的C/C集成开发环境&#xff0c;由JetBrains公司推出。其最新版本支持C14几乎完全&#xff0c;并初步支持C17&#xff0c;使得编写代码更加便捷。CLion还提供了Disassembly view&#xff08;反汇编视图&#xff09;&#xff0c;即使没有源代码…

Unity类银河恶魔城学习记录15-1,2 p153 Audio Manager p154 Audio distance limiter

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili AudioManager.cs using System.Collections; using System.Collections.Gen…

Python游戏工具包pygame

当你涉及游戏开发时&#xff0c;Pygame是一个强大的工具包&#xff0c;它提供了一系列功能丰富的模块和工具&#xff0c;让你可以轻松地创建各种类型的游戏。在本文中&#xff0c;我将介绍Pygame的依赖以及其详细属性&#xff0c;同时提供一些示例代码来说明其用法。 目录 一…

关于discuz论坛网址优化的一些记录(伪静态)

最近网站刚上线&#xff0c;针对SEO做了些操作&#xff0c;为了方便网站网页被收录&#xff0c;特此记录下 1.开启伪静态 按照操作勾选所有项&#xff0c;然后点击查看伪静态规则 2.打开宝塔&#xff0c;找到左侧列表的网站&#xff0c;然后找到相应站点的设置。把discuz自动…

1、Qt简介

文章目录 前言一、pySide2 / pySide6 ,PyQt5 / PyQt6二、安装包1 安装pyside22 安装pyqt5三、从一个简单的例子开始三、界面动作处理---信号(signal)与槽(slot)(Qt最核心的机制)--- 绑定事件封装到类中总结前言 参考文章:Qt简介 本文开始就开始进入到qt的开发笔记书写…

前缀和、差分模板(C++ 一维、二维)

前缀和&#xff08;Prefix Sum&#xff09;和差分&#xff08;Difference&#xff09;是两种常用的数组操作&#xff0c;用于解决一些求和、求区间和、区间修改等问题。 前缀和是指一个数组中每个位置上的元素与它前面位置上所有元素的和。例如&#xff0c;数组nums[1, 2, 3, 4…

打造智能语音机器人-用语音控制机器人

人工智能现已成为国家发展重大战略&#xff0c;智能语音技术作为人工智能产业链上的关键一环&#xff0c;AI应用成熟的技术之一&#xff0c;人工智能的发展也进入了一个崭新的阶段。那么打造智能语音机器人怎样实现用语音控制机器人呢&#xff1f;和小编一起来看看。 选择合适的…

【OceanBase诊断调优 】—— 如何快速定位SQL问题

作者简介&#xff1a; 花名&#xff1a;洪波&#xff0c;OceanBase 数据库解决方案架构师&#xff0c;目前负责 OceanBase 数据库在各大型互联网公司及企事业单位的落地与技术指导&#xff0c;曾就职于互联网大厂和金融科技公司&#xff0c;主导过多项数据库升级、迁移、国产化…

内推米哈游(原神),38岁被拒。。。

内推米哈游&#xff0c;被拒 今天逛职场 App 无意看到一条和米哈游&#xff08;原神&#xff09;相关的帖子。 楼主说前同事跳槽去了米哈游&#xff0c;因为之前合作过&#xff0c;彼此熟悉&#xff0c;主动联系自己说&#xff0c;想要帮忙内推。 当时 38 岁的楼主&#xff0c;…

【Linux系统编程】基本指令(一)

目录 1、ls指令 2、pwd指令 3、cd指令 4、touch指令 5、mkdir指令 6、rmdir指令与rm指令 7、man指令 8、cp指令 指令就像刚学windows时学的单击、双击一样&#xff0c;都是操作操作系统 在windows下&#xff0c;文件通常会放在文件夹中&#xff0c;而Linux中同样有文件…

vue 项目关于不同分辨率的电脑网页适配方案

流式布局&#xff1a;这是一种相对灵活的布局方式&#xff0c;页面的元素宽度使用相对宽度&#xff08;例如百分比&#xff09;来定义&#xff0c;而不是使用绝对宽度&#xff08;例如像素&#xff09;。这样&#xff0c;当浏览器窗口大小变化时&#xff0c;元素会自动调整大小…

MySQL B+索引的工作原理及应用

引言 在数据库系统中&#xff0c;索引是优化查询、提高性能的关键技术之一。特别是在MySQL数据库中&#xff0c;B树索引作为最常用的索引类型&#xff0c;对数据库性能有着至关重要的影响。本文旨简单解析MySQL中B树索引的工作原理&#xff0c;帮助学生朋友们更好地理解和利用…

axios——503响应超时重复多次请求——技能提升

今天在写后台管理系统时&#xff0c;遇到一个问题&#xff0c;就是每天早上一启动项目&#xff0c;接口会提示503超时&#xff0c;因此项目运行必须重新刷新请求成功后才可以正常使用。 后端同事说请求超时了&#xff0c;需要前端处理一下&#xff0c;如果是503的状态码&#…

GEM TSU Interface Details and IEEE 1588 Support

摘要&#xff1a;Xilinx ZNYQ ULTRASCALE MPSOC的GEM和1588的使用 对于FPGA来说&#xff0c;只需要勾选一些znyq的配置就行了&#xff0c;其余的都是软件的工作&#xff1b; 所有配置都勾选之后&#xff0c;最终会露出来的接口如下&#xff1a; GEM需要勾选的配置如下&#xf…

如何在CentOS本地搭建DataEase数据分析服务并实现远程查看数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

Python基础10-使用正则表达式进行文本处理

在编程过程中&#xff0c;我们经常需要对文本进行处理&#xff0c;以提取、替换或分割特定的字符串。正则表达式&#xff08;Regular Expression&#xff09;是一种强大的文本处理工具&#xff0c;它可以帮助我们实现这些任务。以下是使用正则表达式进行文本处理的一些基本方法…