飞天使-docker知识点1-安装docker以及手动制作镜像

文章目录

        • docker 的好处
          • 安装docker
          • docker images
          • images 导出与导出
          • 删除镜像,指定端口启用
          • 容器启停
            • 批量关闭正在运行的容器
          • docker 的镜像制作之下载并安装好nginx
          • docker 的镜像制作之提交镜像

docker 的好处
快速部署:短时间内可以部署成百上千个应用,更快速交付到线上。
高效虚拟化:不需要额外的 hypervisor 支持,直接基于 linux 实现应用虚拟化,
相比虚拟机大幅提高性能和效率。
节省开支:提高服务器利用率,降低 IT 支出。
简化配置:将运行环境打包保存至容器,使用时直接启动即可。
快速迁移和扩展:可夸平台运行在物理机、虚拟机、公有云等环境,良好的兼容
性可以方便将应用从 A 宿主机迁移到 缺点是隔离性:各应用之间的隔离不如虚拟机彻底
安装docker
见官网安装成功之后,docker 会有默认生成一个 docker0 的网卡,并且默认IP地址为 172.17.0.1 的网卡
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:fc:9a:1c:32 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:fcff:fe9a:1c32/64 scope linkvalid_lft forever preferred_lft forever1.dockerd 通过 grpc 和 containerd 模块通信(runc)交换,dockerd 和 containerd
通信的 socket 文件:/run/containerd/containerd.sock。
2. containerd 在 dockerd 启动时被启动,然后 containerd 启动 grpc 请求监听,
containerd 处理 grpc 请求,根据请求做相应动作。
/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3. 若是创建容器,containerd 拉起一个 container-shim 容器进程 , 并进行相应
的创建操作。
4. container-shim 被拉起后,start/exec/create 拉起 runC 进程,通过 exit、control
文件和 containerd 通信,通过父子进程关系和 SIGCHLD(信号)监控容器中进程
状态。
5. 在整个容器生命周期中,containerd 通过 epoll 监控容器文件,监控容器事
件
docker images
REPOSITORY                TAG         IMAGE ID       CREATED        SIZE
sameersbn/redmine         latest      cdbd133188e5   2 months ago   1.01GBREPOSITORY #镜像所属的仓库名称
TAG #镜像版本号(标识符),默认为 latest
IMAGE ID #镜像唯一 ID 标示
CREATED #镜像创建时间
VIRTUAL SIZE #镜像的大小
images 导出与导出
 docker save centos -o /opt/centos.tar.gz
docker save centos > /opt/centos-1.tar.gzdocker load < /opt/centos.tar.gz
删除镜像,指定端口启用
docker rmi centos汇总
# docker load -i centos-latest.tar.xz #导入本地镜像
# docker save > /opt/centos.tar #centos #导出镜像
# docker rmi 镜像 ID/镜像名称 #删除指定 ID 的镜像,通过镜像启动容器的
时候镜像不能被删除,除非将容器全部关闭
# docker rm 容器 ID/容器名称 #删除容器
# docker rm 容器 ID/容器名-f #强制删除正在运行的容器删除某个id
docker ps -a 
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
f1759d1b8abe   postgres                    "docker-entrypoint.s…"   6 weeks ago    Up 6 weeks    5432/tcp                                               some-postgres
eae49555c864   sameersbn/postgresql        "/sbin/entrypoint.sh"    6 weeks ago    Up 6 weeks    5432/tcp                                               postgresql-redmine
bdf5d162155e   mysql                       "docker-entrypoint.s…"   6 weeks ago    Up 6 weeks    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
2a296128cadc   jenkins/jenkins:lts-jdk11   "/usr/bin/tini -- /u…"   4 months ago   Up 4 months   50000/tcp, 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp   jenkins
docker rm -f f1759d1b8abe
f1759d1b8abe
[root@lightnode-wesley-test ~[]# docker ps -a 
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS        PORTS                                                  NAMES
eae49555c864   sameersbn/postgresql        "/sbin/entrypoint.sh"    6 weeks ago    Up 6 weeks    5432/tcp                                               postgresql-redmine
bdf5d162155e   mysql                       "docker-entrypoint.s…"   6 weeks ago    Up 6 weeks    0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
2a296128cadc   jenkins/jenkins:lts-jdk11   "/usr/bin/tini -- /u…"   4 months ago   Up 4 months   50000/tcp, 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp   jenkins如果是端口映射的话,#随机端口映射,其实是默认从 32768 开始
指定则 -p 
本地端口 81 映射到容器 80 端口
-p 81:80
容器启停
容器的启动和关闭:
[root@docker-server1 ~]# docker stop f821d0cd5a99
[root@docker-server1 ~]# docker start f821d0cd5a99
批量关闭正在运行的容器
[root@docker-server1 ~]# docker stop $(docker ps -a -q) #正常关闭所有运
行中的容器
[root@docker-server1 ~]# docker kill $(docker ps -a -q) #强制关闭所有运行
中的容器
[root@docker-server1 ~]# docker rm -f `docker ps -aq -f status=exited`
批量删除已退出容器
docker rm -f $(docker ps -a -q)
批量删除所有容器 
docker 的镜像制作之下载并安装好nginx
[root@light-test etc[]# docker images
REPOSITORY                TAG         IMAGE ID       CREATED        SIZE
dokken/centos-7           latest      6524c258bb0e   9 hours ago    398MBdocker pull dokken/centos-7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum clean all && yum makecache #安装常用命令
yum install nginx –y 
yum install -y vim wget pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop自定义web 页面 cat /usr/share/nginx/html/index.htmlhello 
演示效果: [root@648ef7329ad1 html]# curl 127.0.0.1/index1.html
hello world docker 
docker 的镜像制作之提交镜像
[root@light-test ~[]# docker commit -m "nginx image" 648ef7329ad1 light/centos-nginxv1
sha256:0105b7ab4fb826b62fcb7847b20a37faf3c36e779d5023895f89f7157ab51835
[root@light-test ~[]# docker ps -a 
CONTAINER ID   IMAGE                       COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
648ef7329ad1   dokken/centos-7             "/bin/bash"              23 minutes ago   Up 7 minutes                                                          wizardly_shockley
eae49555c864   sameersbn/postgresql        "/sbin/entrypoint.sh"    6 weeks ago      Up 6 weeks     5432/tcp                                               postgresql-redmine
bdf5d162155e   mysql                       "docker-entrypoint.s…"   6 weeks ago      Up 6 weeks     0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql
2a296128cadc   jenkins/jenkins:lts-jdk11   "/usr/bin/tini -- /u…"   4 months ago     Up 4 months    50000/tcp, 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp   jenkins
[root@light-test ~[]# docker images 
REPOSITORY                TAG         IMAGE ID       CREATED         SIZE
light/centos-nginxv1      latest      0105b7ab4fb8   7 seconds ago   1.13GB启用自己刚刚打好的镜像 
使用 docker commit 命令可以将容器的当前状态保存为一个新的镜像。您可以随后使用该镜像来创建新的容器。下面是关于如何使用 docker commit 的一些指导步骤:首先,确认您已经创建了一个容器并对其进行了一些修改或配置。使用以下命令来查看当前正在运行的容器列表以及它们的标识信息(容器ID或容器名称):docker ps
在输出结果中找到您要制作镜像的容器,并记录其容器ID或容器名称。运行以下命令来创建新的镜像:docker commit <容器ID或容器名称> <新镜像名称>
将 <容器ID或容器名称> 替换为您要制作镜像的容器的实际ID或名称。将 <新镜像名称> 替换为您想要为新镜像指定的名称。例如,假设您的容器ID是 abcd1234,您想要将其制作为名为 myimage:latest 的新镜像,命令将如下所示:docker commit abcd1234 myimage:latest
执行该命令后,Docker将保存容器的当前状态并创建一个新的镜像。确认新镜像已经创建成功。您可以运行以下命令来列出已保存的镜像:docker images
在输出结果中,您应该能够看到您刚刚创建的新镜像及其相关信息。您可以使用新镜像创建一个新的容器,如下所示:docker run -it <新镜像名称> <命令>
将 <新镜像名称> 替换为您刚刚制作的新镜像的名称。将 <命令> 替换为您想要在新容器内执行的命令。例如,要使用刚刚制作的 myimage:latest 镜像创建一个新容器并执行 bash 命令,命令将如下所示:docker run -it myimage:latest bash
这将创建一个新容器并启动一个交互式会话,您可以在其中执行命令。通过使用 docker commit 命令,您可以将容器的当前状态保存为一个新的镜像,并通过使用该镜像创建新的容器来复现相同的环境。请注意,制作镜像时最好选择容器状态的一个稳定点,以便获得一致性和可重复性的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225844.shtml

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

相关文章

塑料检查井产品设计合理、座盖联合周密,为安装维护带来方便

塑料检查井作为一种新型的检查井材料&#xff0c;其产品设计合理、座盖联合周密&#xff0c;为安装维护带来了极大的方便。 首先&#xff0c;塑料检查井的设计合理&#xff0c;能够满足各种工程需求。其结构紧凑、尺寸精确&#xff0c;可以方便地与管道和其他设施进行连接和安…

【IEEE】2区SCI,接收领域广,稳定检索47年!

重点 本期推荐 区块链是一种新兴技术&#xff0c;很多行业和领域都以创新方式采用了此技术&#xff0c;如能源、金融、媒体和娱乐以及零售等。此外&#xff0c;区块链作为一门新兴的交叉学科, 涉及密码学应用&#xff08;加密&#xff0c;隐私等&#xff09;&#xff0c; 分布式…

Python基础入门第四节,第五节课笔记

第四节 第一个条件语句 if 条件: 条件成立执行的代码1 条件成立执行的代码2 ...... else: 条件不成立执行的代码1 条件不成立执行的代码2 …… 代码如下: 身高 float(input("请输入您的身高(米):")) if 身高 >1.3:print(f您的身高是{身高},已经超过1.3米,您需…

工业交换机的组网方式有哪些?

工业交换机也称作工业以太网交换机&#xff0c;即应用于工业控制领域的以太网交换机设备&#xff0c;由于采用的网络标准&#xff0c;其开放性好、应用广泛以及价格低廉、使用的是透明而统一的TCP/IP协议&#xff0c;以太网已经成为工业控制领域的主要通信标准。 工业交换机的…

【Java代码审计】文件上传篇

【Java代码审计】文件上传篇 1.Java常见文件上传方式2.文件上传漏洞修复 1.Java常见文件上传方式 1、通过文件流的方式上传 public static void uploadFile(String targetURL, String filePath) throws IOException {File file new File(filePath);FileInputStream fileInpu…

太阳能电池特性测试用太阳光模拟器24H光源

概述 太阳能模拟器是一种在室内模拟太阳光的设备&#xff0c;能够较为准确地模拟太阳辐射的准直性、均匀性和光谱特性。它的基本原理是利用人工光源模拟太阳光辐射&#xff0c;以克服太阳光辐射受环境、时间和气候等因素影响&#xff0c;并且总辐照度不能调节等缺点&#xff0c…

继续看回溯问题

关卡名 继续看回溯问题 我会了✔️ 内容 1.复习递归和N叉树&#xff0c;理解相关代码是如何实现的 ✔️ 2.理解回溯到底怎么回事 ✔️ 3.掌握如何使用回溯来解决二叉树的路径问题 ✔️ 1 复原IP地址 这也是一个经典的分割类型的回溯问题。LeetCode93.有效IP地址正好由四…

在vue项目里面临时创建js文件想用node执行报错

报错信息如下: file:///Users/zhaolan/wangchun/study-json-demo/schema-tests/test1.js:1 const Ajv require("ajv")^ReferenceError: require is not defined in ES module scope, you can use import instead This file is being treated as an ES module becau…

实现滚动穿透,保留原本元素的事件,仅实现滚动穿透

网络上都是一堆解决滚动穿透的&#xff0c;却没有一条是实现滚动穿透的方案。 小程序或者某些组件会有滚动穿透&#xff0c;但是如果是自己要造轮子&#xff0c;在某些场景下就需要去实现滚动穿透。比如我打开一个可滑动的弹框&#xff0c;在弹框上打开一个可滑动的组件&#…

sourcetree使用详解

介绍 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具&#xff0c;同时也是Mn版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。——百度百科 是一款比较好用的图形化GUI的git、hg管理工具。还有一些其他的可视化代码管理工具&#x…

vivado约束方法7

输出延迟 与“输入延迟”步骤类似&#xff0c;“定时约束”向导分析所有输出的路径端口&#xff0c;以识别其在设计内部的源时钟及其活动边缘。模板选择规则与输入延迟中描述的相同。下图显示了几个由向导提出并由用户部分编辑的输出约束。 对于每个约束&#xff0c;可以编辑三…

zync spi flash 频率配置

spi flash的频率配置 代码流程及最终的频率值。 驱动目录 基于4.14.55 内核&#xff0c; \drivers\spi\spi-dw-fmsh.c (控制器) \drivers\spi\spi-dw.c \drivers\mtd\devices\m25p80.c &#xff08;设备&#xff09; \drivers\spi\spi.c spi dts配置说明 spi0: spie000100…

2. 学成在线 - 项目搭建

文章目录 一、基础工程搭建1.1 构建父工程1.2 构建基础工程 二、数据库环境2.1 内容管理content数据库 三、模块需求分析介绍四、部署前端和系统管理服务 一、基础工程搭建 整个项目分为三大类工程&#xff1a;父工程、基础工程 和微服务工程。 父工程&#xff1a;xuecheng-pl…

Android Studio 实现音乐播放器

目录 一、引言 视频效果展示&#xff1a; 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…

半导体:Gem/Secs基本协议库的开发(4)

继续接上篇 《半导体&#xff1a;Gem/Secs基本协议库的开发&#xff08;3&#xff09;》&#xff0c;本篇我们分享的比较简单&#xff0c;windows系统下tcp和串口通讯。这也是我们协议开发比较重要的一部分&#xff0c;不过我们在此把它封装程一个单独的通讯库&#xff0c;毕竟…

Docker中的常见命令

Docker开机自启 systemctl enable dockerDocker容器开机自启 docker update --restartalways [容器名/容器id]案例&#xff1a;docker操作nginx 拉取Nginx镜像 docker pull nginx查看镜像 docker images创建并运行Nginx容器 docker run -d --name nginx -p 80:80 nginx查…

LT8711HE方案《任天堂Switch底座方案》

LT8711HE Type-c转HDMI方案 LT8711HE是高性能的Type-C/DP1.2转HDMI2.0转换器&#xff0c;设计用于连接 USB Type-C 源或 DP1.2 源到 HDMI2.0 接收器。该LT8711HE集成了符合 DP1.2 标准的接收器和符合 HDMI2.0 标准的发射器。此外&#xff0c;两个 CC 控制器是包括用于 CC 通信以…

python matplotlib 三维图形添加文字且不随图形变动而变动

要在三维图形中添加文字并使其不随图形变动而变动&#xff0c;可以使用 annotate() 方法。这个方法可以在三维图形中添加文字&#xff0c;并且可以指定文字的位置、对齐方式和字体大小等属性。 下面是一个示例代码&#xff0c;演示如何在三维图形中添加文字&#xff1a; impo…

1.6 实战:Postman请求Get接口-获取用于登录的图形验证码

上一小节我们学习了Postman的布局,对Postman有了一个整体的认知,本小节我们就来实操一下Get接口。 我们打开Postman,点击我们之前创建的请求”获取登录页验证码“。我们在地址栏里填入获取登录页验证码的接口地址。怎么查看这个接口地址呢?我们打开校园二手交易系统,打开…

Leetcode—2414.最长的字母序连续子字符串的长度【中等】

2023每日刷题&#xff08;六十&#xff09; Leetcode—2414.最长的字母序连续子字符串的长度 实现代码 class Solution { public:int longestContinuousSubstring(string s) {int ans 1;int t 1;for(int i 1; i < s.size(); i) {if(s[i] - s[i - 1] 1) {t;ans max(an…