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

news/2024/11/21 1:34:37/

文章目录

        • 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.ppmy.cn/news/1271446.html

相关文章

LSTM 双向 Bi-LSTM

目录 一.Bi-LSTM介绍 二.Bi-LSTM结构 Bi-LSTM 代码实例 一.Bi-LSTM介绍 由于LSTM只能从序列里由前往后预测,为了既能够从前往后预测,也能从后往前预测,Bi-LSTM便被发明了出来。简单来说,BiLSTM就是由前向LSTM与后向LSTM组合而成。 二.Bi-LSTM结构 转自:

elementui el-pagination分页组件查询的时候当前页不更新

elementui el-pagination分页组件查询的时候当前页不更新 <mypagination v-if"pageshow" :currentPage.sync"pageNum" :pagesize"pageSize" :pagetotal"pageTotal" pagefunc"pageFunc"></mypagination>1.在加的…

冯丹教授:近数据处理新型盘框等技术创新,加速IDC向Diskless架构演进

日前&#xff0c;在中国深圳举办的第20届华为全球分析师大会&#xff0c;长江学者特聘教授、华中科技大学计算机科学与技术学院院长冯丹对数据中心Diskless架构及近数据处理发展趋势做出了权威解读&#xff0c;为传统云存储、大数据等计算域和存储域不完全分离造成的资源浪费&a…

FLStudio20最新2024年中文汉化版

FLStudio21.0.2.3中文版完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室&#xff0c;因为它包含了一个主要的听觉工作场所。最新FL有不同的功能&#xff0c;如它包含图形和音乐音序器&#xff0c;帮助您使完美的配乐在一个美妙的方式。此程序可用于Mi…

Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案

目录 ​编辑 题目&#xff1a;简单的ab 1. 题目描述 2. 输入格式 3. 输出格式 4. 样例输入 5. 样例输出 6. 解题思路 7. 代码示例 8. 报错解决 方案一 方案二 方案三 方案四 总结 题目&#xff1a;简单的ab 1. 题目描述 输入两个整数a和b&#xff0c;…

【vim 学习系列文章 13.1 -- 自动命令autocmd 根据文件类型设置vim参数】

文章目录 autocmd 根据文件类型配置vim参数vim 文本类型 autocmd 根据文件类型配置vim参数 在 Vim 中&#xff0c;你可以使用 autocmd &#xff08;自动命令&#xff09;来根据文件类型自动执行特定的函数。首先&#xff0c;你需要定义这些函数&#xff0c;然后使用 autocmd 与…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring中bean的作用域和bean的生命周期

第一章 Spring中bean的作用域 1.1 语法 在bean标签中添加属性&#xff1a;scope属性即可 1.2 四个作用域 singleton【默认值】&#xff1a;单例【在容器中只有一个对象】 对象创建时机&#xff1a;创建容器对象时&#xff0c;创建对象执行 prototype&#xff1a;多例【在容…

WebGL+Three.js入门与实战——给画布换颜色、绘制一个点、三维坐标系

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…