使用docker file创建镜像(thirty-three day)

news2024/9/21 14:48:50

回顾:根据镜像创建容器

docker -it --name c0 centos:latest /bin/bash

安装应用

ctrl+p+q

docker export -o centos.tar c0

docker import -m "山不像我走来,我便向山走去" centos.tar centos:httpd

docker commit c0 centos:v2

一、docker file应用

在Docker file中定义所需要执行的指令,使用 docker build创建镜像,过程中会按照dockerfile所定义的内容进行打开临时性容器,把docker file中命令全部执行完成,就得到了一个容器应用镜像,每一行命令都会出现容器,都会使用dockercommit进行提交一个临时性的镜像

注意执行的命令越多,镜像体积越大,所以需要优化镜像

1、Docker file关键字

1.FORM <image>                    指定基础镜像为该镜像的最后修改版本
2.FROM <image :tag>             指定基础镜像为该镜像的一个tag版本
3.MAINTAINER                        指定镜像创建者,企业内部不用指定,对外发布也可以不指定
3.RUN                                       运行命令,安装软件
4.CMD                                  设置container启动时进行的操作,如果容器镜像中有这个命名,启动容器时,不要手动让容器执行其他命令
5.ENTRYPORINT(入口点)        cmd每次只能执行一个指令,entrypoint可以多行执行
6.USER                                     设置容器进程的一些用户
7.EXPOSE                                暴露端口 指定容器需要映射到宿主机的端口
8.ENV                                       设置环境变量 -e
9.ADD                                       从宿主机src复制文件到容器的dest路径
10.volumn                                 指定挂载点

11.WROKDIR                            切换目限
12.ONBUILD                              在子镜像中执行指令

 2、使用docker file创建镜像

 (通过dockerfile创建⼀个在启动容器时,就可以启动httpd服务的镜像)

(1)步骤

①创建⼀个⽬录,⽤于存储Docker file所使⽤的⽂件
② 在此⽬录中创建Docker file⽂件,以及镜像制作所使⽤的⽂ 件
③ 使⽤docker build创建镜像
④ 使⽤创建的镜像启动容器(验证)

 (2)具体操作

[root@Docker ~]# mkdir 001    
[root@Docker ~]# cd 001/

[root@Docker httpd0]# vim abc.sh

#!/bin/bash
rm -rf /run/*httpd*
exec /sbin/httpd -D FOREGROUND

[root@Docker httpd0]# echo "山不向我走来,我便向山走去" > index.html
[root@Docker httpd0]# ls
index.html  abc.sh

[root@Docker httpd0]# vim Dockerfile

FROM    centos:latest

MAINTAINER      "centos httpd server"

RUN     rm -rf /etc/yum.repos.d/*

RUN     curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

RUN     yum clean all && yum makecache

RUN     yum -y install epel-release

RUN     yum -y install httpd

ADD     abc.sh  /abc.sh

ADD     index.html /var/www/html/index.html

RUN     chmod -v -x /abc.sh

CMD     ["/bin/bash","/abc.sh"]

[root@Docker httpd0]# ls
Dockerfile  index.html  abc.sh

[root@Docker httpd0]# docker build -t centos:httpd .

[root@Docker httpd0]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       httpd0    4569c7510416   4 minutes ago   280MB
centos       httpd     8c4ea681706e   18 hours ago    280MB
centos       latest    5d0da3dc9764   2 years ago     231MB

[root@Docker httpd0]# ls /var/lib/docker/overlay2/
2r56za8uaixgxbbilh75pdtdd
2rpdeqlulp9b7hlx5f86hkvof
6be84eeb89f20e3a01ecb81e31d978dc64a50177463452476ccab40da29a4b30
995db6a0fd46ba18fca60ad04b3d2636f83cda26a9e5e007a1e2f798b0e7cc5e
backingFsBlockDev
eudiuxbdibdsww3fqjijbil3p
l
ofj3mwwdnfl3p44uazvjfd49e
thdnqu77gb3yxizfu5w3el6sa
uaz5woahcolqp9uxt9ttz5gcq
usr98w8jkm1b547i9pcw87wo0
v0i3autzvaq6sfwt68nomsl3r
wq36avrvxy43q2hzh6pxeql5q

[root@Docker httpd0]# docker run -d --name c0 centos:httpd
9fdf6eb1b178ef74d3ab2af48d5f45691fd2f66ef0c5bffddcaea607a179d00c
[root@Docker httpd0]# docker ps --all
CONTAINER ID   IMAGE          COMMAND               CREATED         STATUS         PORTS     NAMES
245646aad8d6   centos:httpd   "/bin/bash /abc.sh"   7 seconds ago  
Up 6 seconds             c0

[root@Docker 001]# curl 172.17.0.2
山不向我走来,我便向山走去

[root@Docker 001]# docker run -it -d -v /opt/:/var/www/html/ -p80 --name a1 centos:httpd

[root@Docker 001]# docker ps --all
CONTAINER ID   IMAGE          COMMAND               CREATED              STATUS              PORTS                                     NAMES
a3bba4a766fe   centos:httpd   "/bin/bash /abc.sh"   33 seconds ago       Up 32 seconds       0.0.0.0:
32768->80/tcp, :::32768->80/tcp   a1
245646aad8d6   centos:httpd   "/bin/bash /abc.sh"   About a minute ago   Up About a minute                                            c0

访问192.168.1.11:32768

练习:配置nginx应用镜像

二、创建私有仓库 

1、拉取registry

docker pull registry

2、创建挂载目录

mkdir /regist

3、启动容器,映射端口,挂载目录

docker run -d --name r2  -v /regist/:/var/lib/registry -p5000:5000 registry:latest

4、访问仓库

curl http://192.168.1.11:5000/v2/_catalog

5、配置pull和push(修改daemon.json)

vim /etc/docker/daemon.json

{
        "registry-mirrors": [
                "https://do.nark.eu.org",
                "https://dc.j8.work",
                "https://docker.m.daocloud.io",
                "https://dockerproxy.com",
                "https://docker.mirrors.ustc.edu.cn",
                "https://docker.nju.edu.cn"
        ],

        "hosts": [
                "tcp://0.0.0.0:2375",
                "unix:///var/run/docker.sock"
        ],
        
         "insecure-registries":[
                "http://192.168.1.11:5000"
        ]

}

6、重启docker服务

systemctl restart docker

7、启动registry容器

docker start r2

curl localhost:5000/v2/_catalog

8、打标签并且上传镜像 

docker tag centos:httpd 192.168.1.11:5000/centos:httpd

docker push 192.168.1.11:5000/centos:httpd

9、查看

curl localhost:5000/v2/_catalog

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

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

相关文章

嵌入式学习——ARM学习(1)

1、存储器 高速缓存&#xff08;Cache&#xff09;通常分为三级&#xff1a;L1、L2 和 L3。它们的主要功能和特点如下&#xff1a; 这三级缓存的设计旨在通过层次化存储来优化数据访问速度和处理器性能。 1、L1 缓存&#xff1a; 位置&#xff1a;直接集成在处理器核心内。 大小…

西门子PLC不得不说的事:S7-200SMART通信端口及连接方式

今天我们来聊聊西门子S7-200 SMART的“通信大法”&#xff01;挺简单的&#xff0c;咱们来捋捋~ S7-200 SMART 是西门子公司推出的一款面向小型控制应用的PLC&#xff08;可编程逻辑控制器&#xff09;。目前S7-200SMART PLC在小型PLC市场使用率占比最大&#xff0c;以高性价等…

C_07_指针

指针 地址编号&#xff1a; 存的是值 指针&#xff1a; 存储的是地址编号值 的数据类型 是地址编号的数据类型,强调的是类型 指针变量&#xff1a; 数据类型为指针的变量,用于保存地址编号 地址编号 概述&#xff1a; 地址编号是内存每一个字节的编号统称。 如 ​ int n 10…

轻松获取商品细节!淘宝天猫详情接口API带你看遍全球好物

随着互联网的飞速发展&#xff0c;网络购物已经成为人们生活中不可或缺的一部分。而作为国内最大的电商平台&#xff0c;淘宝和天猫自然成为了消费者们选购商品的首选之地。为了更好地满足用户需求&#xff0c;淘宝天猫推出了详情接口API&#xff0c;让用户能够更轻松地获取商品…

【人工智能】Transformers之Pipeline(十三):填充蒙版(fill-mask)

目录 一、引言 二、填充蒙版&#xff08;fill-mask&#xff09; 2.1 概述 2.2 技术原理 2.2.1 BERT模型的基本概念 2.2.2 BERT模型的工作原理 2.2.3 BERT模型的结构 2.2.4 BERT模型的应用 2.2.5 BERT模型与Transformer的区别和联系 2.3 应用场景 2.4 pipeline参数…

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64

在银河麒麟服务器V10上源码编译安装mysql-5.7.42-linux-glibc2.12-x86_64 一、卸载MariaDB&#xff08;如果已安装&#xff09;二、下载MySQL源码包并解压三、安装编译所需的工具和库四、创建MySQL的安装目录及数据库存放目录五、编译安装MySQL六、配置MySQL七、设置环境变量八…

计算机系统-内存与CPU

CPU&#xff08;中央处理单元&#xff0c;Central Processing Unit&#xff09;是计算机系统的核心组件&#xff0c;负责执行程序中的指令并处理数据。它被称为计算机的“大脑”&#xff0c;因为它控制了计算机的所有计算和操作。CPU主要由以下几个部分组成&#xff1a; 算术逻…

如何在UE5.4中重新定位动画?

动画在游戏和电影制作中扮演着至关重要的角色&#xff0c;而在虚幻引擎5.4&#xff08;UE5.4&#xff09;这一强大的实时3D创作平台中&#xff0c;重新定位动画的能力更是将创意表达推向了新的高度。本文将引导您探索UE5.4中重新定位动画的技巧&#xff0c;确保您的动画作品不仅…

leetcode 169 多数元素

正文 本题较为简单&#xff0c;但是有一些比较有趣的方法&#xff0c;这里特来记录一下。 普通方法 遍历整个数组&#xff0c;使用 count 进行统计&#xff0c;然后选择出现次数大于 len(nums) / 2 的元素。 class Solution:def majorityElement(self, nums: List[int]) -&g…

工业相机测长仪的组成部分

关键字:工业相机测长仪,高精度测长仪,视觉测量系统,蓝鹏测控测长仪,工业测长仪, 本文介绍了蓝鹏测控公司机器视觉业务 测长仪的核心产品及技术特点&#xff0c;主要涵盖相机部分、相机防护系统、补光系统和软件部分。 &#xff08;一&#xff09;相机部分 我司的机器视觉业务…

双轴测径仪的四种样式!

双轴测径仪主要是用于外径及椭圆度的检测&#xff0c;适用于线缆电缆、橡胶塑料、金属、纸管等各种材质的线棒管材的外径及椭圆度尺寸检测。 双轴测径仪是由两个单测头垂直布置组合而成&#xff0c;目前根据用户的不同需求&#xff0c;为双轴测径仪设计了四种外观样式。 45角…

【开端】从黑神话。悟空看国产游戏技术能否引领全球

国产游戏技术能否引领全球&#xff1f; 近年来&#xff0c;国产游戏行业蓬勃发展&#xff0c;技术水平不断提升&#xff0c;多款作品在国际市场上崭露头角。从画面渲染到物理引擎&#xff0c;从AI技术到服务器架构&#xff0c;中国游戏开发者在各个领域都取得了显著进步。面对…

博主自用智能猫砂盆分享!CEWEY、空气萝卜、糯雪三款区别到底在哪里

不得不说&#xff0c;智能猫砂盆真的是我们这些经常外出的养猫人必备的一个智能产品了&#xff0c;自动铲屎的功能可以让我完全不用担心猫砂盆里会堆积猫便便&#xff0c;然后发臭生虫。有智能猫砂盆在&#xff0c;这些都不是问题&#xff0c;但是想要买一款合适的智能猫砂盆也…

sql-labs36-40通关攻略

第36关 一.判断闭合点 http://127.0.0.1/Less-36/?id1%df%20--http://127.0.0.1/Less-36/?id1%df%20-- 二.查询数据库 http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database(),3--http://127.0.0.1/Less-36/?id-1%df%27%20union%20select%201,database…

vue中使用vue-video-player插件播放视频 以及 audio播放音频

一、使用vue-video-player插件播放视频 安装 npm install vue-video-player --save 在main.js中引用 //引入视频播放插件 // main.js import VueVideoPlayer from vue-video-player import video.js/dist/video-js.css import vue-video-player/src/custom-theme.cssVue.use(V…

web3js连接测试网并完成交易

ps&#xff1a;有个需求是要等待确认交易。写这篇之后&#xff0c;我发现直接用回调函数要等好久好久好久。找到解决方案在这个链接但是有点麻烦。我已经弃用web3&#xff0c;直接使用ethersjs配合infura了&#xff0c;贼快。 本文将介绍如何使用web3js在Sepolia测试网完成一次…

应用案例|亚克力板CNC加工自动化上下料

在现代化制造领域&#xff0c;自动化和智能化已成为提升生产效率、降低成本的关键。针对当前CNC加工过程中亚克力板上下料环节的人工操作问题&#xff0c;富唯智能提出了基于AMR&#xff08;自主移动机器人&#xff09;的复合机器人解决方案。传统的人工取料、放置以及加工完成…

PSINS工具箱函数介绍——gpssimu

关于工具箱 gpssimu是生成GPS的位置和速度信息的函数&#xff0c;在psins240101\base\base1目录下 本文所述的代码需要基于PSINS工具箱&#xff0c;工具箱的讲解&#xff1a; PSINS初学指导&#xff1a;https://blog.csdn.net/callmeup/article/details/137087932 gpssimu是…

【ubuntu24.04】AX210/MT9621/USB网络共享访问无线网络

发现华硕的路由器访问网络经常有问题,比如clash 经常不能正常工作。 即使内网丢包严重? 期望能给台式机增加一个无线网卡访问外网。 我的五代网卡U12, 无法使用wap2企业版的无线网络:【ubuntu24.04】腾达U12 8812au无线网卡成功安装 普通的是没问题的。 对比了一些网卡,wifi…

认知杂谈37

今天分享 有人说的一段争议性的话 I 《别让焦虑困住自己》 嘿&#xff0c;朋友&#xff01;这大热天的&#xff0c;实在是热得让人心里发慌。 I 咱可别再给自己找不痛快啦&#xff0c;赶紧找个舒服的地儿坐下&#xff0c;泡上一杯茶&#xff0c;好好唠唠嗑&#xff0c;给咱的心…