Docker之镜像与容器的相关操作
目录
一、Docker镜像
搜索镜像
下载镜像
查看宿主机上的镜像
删除镜像
二、Docker容器
创建容器
查看容器
启停容器
删除容器
进入容器
创建/启动/进入容器
退出容器
查看容器内部信息
一、Docker镜像
Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载(默认使用 Docker Hub公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库。
搜索镜像
docker search 镜像名称
例如:
docker search centos
下载镜像
docker pull 镜像
例如, 获取一个 centos 系统的基础镜像可以使用如下的命令:
# 未指定版本一般会使用latest(最新的)版本
docker pull centos
# 或者直接指定版本
docker pull centos:版本号
查看宿主机上的镜像
docker images
/var/lib/docker 为 docker 默认安装目录
# 切换目录
cd /var/lib/docker/containers
# 查看目录下的文件
ls
删除镜像
docker rmi 镜像ID/标签
例如:
# 根据镜像ID删除
docker rmi feb5d9fea6a5
# 根据镜像标签(版本)
docker rmi hello-world:latest 或 docker rmi hello-world:版本号
如果提示镜像被使用,需要先停止某个ID的容器,然后先删除容器再删除镜像。或者强制删除镜像。
强制删除镜像:
docker rmi -f centos:版本号
-f, -force: 强制删除镜像, 即使有容器依赖它。
总之, 通常并不推荐使用-f参数来强制删除一个存在容器依赖的镜像。 正确的做法是,先删除依赖该镜像的所有容器, 再来删除镜像。
二、Docker容器
容器是Docker的另一个核心概念。简单来说,容器是镜像的一个运行实例。所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层;同时,容器中的应用进程处于运行状态。
通俗理解:类 -> 实例,镜像 -> 容器
创建容器
# 方式一:创建容器不指定容器名,由Docker容器随机生成
docker create -it centos:latest
# 方式二:创建容器并指定容器名
docker create -it --name tomcat01 centos:latest
命令说明:
命令 | 说明 |
---|---|
create | 创建docker 容器关键字 |
-it | 是两个参数,-i:interactive容器具有交互功能,-t:容器将提供伪终端 |
--name | 指定生成的容器的名字,允许空,如果不指定会自动生成 |
centos:latest | 即镜像名字:版本(或镜像ID),将使用指定镜像创建容器。另外,Docker会检查本地是否存在指定的镜像,不存在就从公有仓库下载。 |
查看容器
查看当前运行的容器:
docker ps
查看所有容器:
docker ps -a
启停容器
# 启动容器
docker start 容器ID或name
# 停止容器
docker stop 容器ID或name
# 重启容器
docker restart 容器ID或name
删除容器
docker rm 容器ID
主要支持的选项包括:
选项 | 说明 |
---|---|
-f, --force=false | 是否强行终止并删除一个运行中的容器 |
-l, --link=false | 删除容器的连接 ,但保留容器 |
-v, --volumes=false | 删除容器挂载的数据卷 |
删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
docker rm $(docker ps -aq)
停止所有容器并删除容器:
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
还可以根据容器的状态删除,删除Exited状态的容器:
docker rm $(docker ps -qf status=exited)
Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器:
docker container prune
进入容器
docker exec -it 容器ID/容器NAME /bin/bash
# 简写方式:
docker exec -it 容器ID/容器NAME bash
注意:只有在容器启动的时候即
UP
状态才能进入容器终端
创建/启动/进入容器
run 命令等于 create + start。
-
创建+启动+进入容器:
docker run -it centos:latest /bin/bash
-
创建容器,通过 -p 标记指定端口映射规则,可以指定多个:(注意:此处p是小写)
docker run -it -p 7001:8001 centos:latest /bin/bash
-
使用 -P 标记时, Docker 会随机映射一个 49000~49900 的端口:(注意:此处P是大写)
docker run -it -P --name tomcat03 centos:latest /bin/bash
更多的时候,需要让 Docker 容器在后台以守护态( Daemonized )形式运行 此时,可以通过添加 -d 参数来实现:
# 创建容器指定后台运行模式(后台守护态)
docker run -it -d --name webapp centos:latest
# 进入容器
docker exec -it webapp /bin/bash
部分参数说明:
参数 | 说明 |
---|---|
-p | 端口映射,格式为:主机(宿主)端口:容器端口 |
-P | 注意是大写P,使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口 |
-d | 后台运行模式 |
退出容器
退出时如果想继续运行容器:按顺序按【ctrl+p】,【ctrl+q】
如果不想继续运行:按【ctrl+d】或输入exit
查看容器内部信息
-
进入容器内部获取信息
首先,请先进入容器:
docker exec -it 容器ID/容器NAME /bin/bash
如果此时已进入容器内部,可分别执行hostname、ip addr、env这三个命令可以获取相关信息:
# 查看主机名
hostname
# 查看IP地址
ip addr
# 查看环境变量
env
- 在宿主机,执行docker exec命令
# 获取容器的hostname
docker exec 容器ID/容器NAME hostname
# 获取容器ip地址
docker exec 容器ID/容器NAME ip addr
# 获取容器环境变量
docker exec 容器ID/容器NAME env
- 在宿主机,使用 docker inspect 命令
推荐使用 docker inspect 来获取信息,这个命令会返回一个 json 字符串,里面以 key-value 的格式准备了该容器相关的信息,内容十分丰富,可以一次性取得全部内容,也可以返回指定 key 对应的信息。
docker inspect 容器ID/容器NAME
相关文章:

Docker之镜像与容器的相关操作
目录 一、Docker镜像 搜索镜像 下载镜像 查看宿主机上的镜像 删除镜像 二、Docker容器 创建容器 查看容器 启停容器 删除容器 进入容器 创建/启动/进入容器 退出容器 查看容器内部信息 一、Docker镜像 Docker 运行容器前需要本地存在对应的镜像, 如…...

中科驭数超低时延网络解决方案入选2023年度金融信创优秀解决方案
近日,由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布「2023年度第三期金融信创优秀解决方案」,中科驭数超低时延网络解决方案从众多方案中脱颖而出,成功入选,代表了该方案的技术创新和金融实践…...

应用方案 | DCDC电源管理芯片MC34063A
MC34063A 为一单片 DC-DC 变换集成电路,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等。外配少量元件,就能组成升压、降压及电压反转型 DC-DC 变换器。…...

【个人使用推荐】联机不卡顿 小白一键部署 大厂云服务器选购指南 16G低至26 幻兽帕鲁最大更新来袭
更新日期:4月8日(半年档 价格回调,京东云采购季持续进行) 本文纯原创,侵权必究 《最新对比表》已更新在文章头部—腾讯云文档,文章具有时效性,请以腾讯文档为准! 【腾讯文档实时更…...

57 npm run build 和 npm run serve 的差异
前言 npm run serve 和 npm run build 的差异 这里主要是从 vue-cli 的流程 来看一下 我们经常用到的这两个命令, 他到传递给 webpack 打包的时候, 的一个具体的差异, 大致是配置了那些东西? 经过了那些流程 ? vue-cli 的 vue-plugin 的加载 内置的 plugin 列表如下, 依次…...

原生小程序开发性能优化指南
性能优化指南 1.骨架屏 业务可以在数据加载完成之前用骨架屏幕来占位,提升体验。 2.包大小优化 减小包中静态资源,例如图片文件,可将图片进行压缩降低文件体积。无用文件、函数、样式剔除。除了部分用于容错的图片必须放在代码包…...

「51媒体网」邀请媒体采访报道对企业宣传有何意义?
传媒如春雨,润物细无声的,大家好,我是51媒体网胡老师。 邀请媒体采访报道对企业宣传具有多重意义: 提升品牌知名度和曝光度:媒体是信息传播的重要渠道,通过媒体的报道,企业及其活动、产品能够迅…...

用动态IP采集数据总是掉线是为什么?该怎么解决?
动态IP可以说是做爬虫、采集数据、搜集热门商品信息中必备的代理工具,但在爬虫的使用中,总是会遇到动态IP掉线的情况,从而影响使用效率,本文将探讨动态IP代理掉线的几种常见原因,并提供解决方法,以帮助大家…...

MySQL操作DDL
目录 1.概述 2.数据库的增删改查 3.表的增删改查 3.1.创建和查看表结构 3.2.修改表 3.3.查看所有的表 3.4.删除表 4.用户 5.DDL在实际应用场景中的作用 5.1.数据库设计 5.2.数据库维护 5.3.数据库迁移或重置 5.4.优化性能 …...

程序员如何搞副业
目录 1.概述 2.个人项目开发 3.在线教育和培训 4.技术博客和内容创作 1.概述 程序员通过副业实现个人价值最大化和增加收入的途径多种多样,以下是一些方法: 自由职业: 程序员可以在业余时间提供自由职业服务。包括为客户开发软件、网站或应用程序、…...
【嵌入式开发 Linux 常用命令系列 4.3 -- git add 不 add untracked file】
请阅读【嵌入式开发学习必备专栏 】 文章目录 git add 不add untracked file git add 不add untracked file 如果你想要Git在执行git add .时不添加未跟踪的文件(untracked files),你可以使用以下命令: git add -u这个命令只会加…...

git 常用命令和使用方法
作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…...
程序员如何搞副业?
程序员不仅拥有将抽象概念转化为实际应用的能力,还通常具备强大的逻辑思维和问题解决能力。然而,许多程序员并不满足于仅仅在一家公司工作,他们渴望通过副业来实现个人价值的最大化,增加收入,甚至探索自己的创业梦想。…...

深入浅出 -- 系统架构之负载均衡Nginx实现高可用
一、Nginx的高可用 线上如果采用单个节点的方式部署Nginx,难免会出现天灾人祸,比如系统异常、程序宕机、服务器断电、机房爆炸、地球毁灭....哈哈哈,夸张了。但实际生产环境中确实存在隐患问题,由于Nginx作为整个系统的网关层接入…...

鲸鱼优化算法(Whale Optimization Algorithm)
注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法背景 鲸鱼优化算法(Whale Optimization Algorithm, WOA)是一种模拟鲸鱼捕食行为的优化算法。想象一下,你…...

C++内存管理new-delete大法及实现原理
目录 前言: 一:C语言中区域划分的回顾及各个变量存在的位置 1.经典例题 编辑2.C/C中内存区域的划分 二:C内存管理方式 new delete操作符 1.对于内置类型 2.对于自定义类型 三:operator new和operator delete函数 1…...
Spring WebFlux响应式实现WebFilter解决跨域问题
WebFilter 是 Spring Framework 中用于处理 Web 请求的过滤器接口,它是在基于 Servlet 3.0 规范的基础上,为了支持响应式编程模型而引入的。与传统的 Servlet 过滤器相似,WebFilter 也允许开发者对进入的请求和返回的响应进行拦截、修改或者增…...

第4章 Redis,一站式高性能存储方案,笔记问题
点赞具体要实现功能有哪些? 可以点赞的地方:对帖子点赞,对评论点赞点一次是点赞,再点一次是取消赞统计点赞的数量(计数,string),帖子被点赞的数量,某个用户被点赞的数量…...
UVA540 Team Queue 解题报告
UVA540 Team Queue 解题报告 题目链接 https://vjudge.net/problem/UVA-540 题目大意 有t个团队的人正在排一个长队。每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后。如果没有任何一个队友排队,则他会排到…...

基础贪心问题
1.部分背包问题 #include<iostream> #include<algorithm> using namespace std; const int N 110; double v[N], w[N]; pair<double, int> a[N]; int n, m;int main(){cin>>n>>m;double x, y;for(int i 0; i < n; i){cin>>v[i]>&g…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...