如何使用dockerfile文件和registry私有仓库
admin
2023-01-24 00:20:42
0

如何使用dockerfile文件和registry私有仓库?相信很多新手小白还没学会这个技能,通过这篇文章的总结,希望你能学会使用dockerfile文件和registry私有仓库。

Dockerfile常用命令(安全)
1.》FROM:构建镜像基于那个镜像
例如:FROM centos:7
2》MAINTAINER:镜像维护者名字或邮箱地址
例如:MAINTAINER adam
3》RUN:构建镜像时运行的shell命令
例如:
RUN[“yum”,”install”,”httpd”]
RUN yum -y install httpd
4>CMD:运行容器时执行的shell命令
例如:
CMD[“/bin/bash”]  或shell
5>EXPOSE声明容器的服务端口
例如:EXPOSE   80   443
6》ENV:设置容器环境变量
例如
ENV  MYSQL_ROOT_PASSWORD  123.com
7》ADD:拷贝文件或目录的镜像,如果是URL或压缩包会自动下载或自动解压
ADD <源文件>... <目标目录>
ADD[“源文件”...”目标目录”]
8》COPY:拷贝文件或目录到镜像容器内,跟ADD类似,但不具备自动下载或解压功能。
9》ENTRYPOINT:运行容器时执行的shell命令
例如
ENTRYPOINT[“/bin/bash”,”-c”,”command”]
ENTRYPOINT /bin/bash -c ‘command’
10>VOLUME:指定容器挂载点到宿主机自动生成的目录或其他容器
例如:  (数据持久化)
VOLUME [“/var/lib/mysql”]
docker run  -it --name  xxx  /var/lib/mysql  --volume 指定的是容器 目录,会将其放到宿主机的某个目录。
11>USER:为RUN。CMD和ENTYRYPOINT执行命令指定运行用户
12>WORKDIR:为RUN,CMD,ENTRYPOINT,COPY和ADD设置工作目录,意思为切换目录
例如:
WORKDIR: /var/lib/mysql
13>HEALTHCHECK:健康检查
14>ARG构建时指定的一些参数
例如:
FROM centos:7
ARG user
USER  $user
注意:
1.RUN在building时运行,可以写多条
2.CMD和ENTRYPOINT在运行CONTAINER(容器)时运行,只能写一条,如果写多条,最后一条生效
3.CMD在run时可以被COMMAND覆盖,ENTRYPOINT不会被COMMAND覆盖,但可以指定--ENTRYPOINT覆盖。
4.如果在dockerfile里需要往镜像内导入文件则此文件必须在dockerfile所在目录或子目录下。

测试实验:
使用dockerfile文件制作一个镜像基于centos:7 镜像部署安装nginx服务
注意Nginx包需要与dockfile文件在同一目录,要不运行时是dockerfile文件不允许的
vim  Dockerfile
配置:
FROM    centos:7
RUN     yum -y install gcc  pcre-devel openssl-devel zlib-devel
RUN     yum -y install make
COPY    nginx-1.14.0.tar.gz /
RUN     tar -zxf  nginx-1.14.0.tar.gz -C /usr/src
RUN     useradd -M -s /sbin/nologin nginx
WORKDIR /usr/src/nginx-1.14.0
RUN     ./configure  --prefix=/usr/local/nginx --user=nginx  --group=nginx
RUN     make && make install
RUN     ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
RUN     nginx -t
RUN     nginx
EXPOSE  80

另一种将COPY改为ADD的创建镜像
FROM centos:7
RUN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
ADD nginx-1.14.0.tar.gz /usr/src/
RUN useradd -M -s /sbin/nologin nginx
WORKDIR /usr/src/nginx-1.14.0
RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
RUN make && make install
RUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
RUN nginx -t
RUN nginx
EXPOSE 80

如果编译安装时,MAKE不上,需要在Dockerfile文件中添加
yum一个make。

执行Dockerfile文件的命令:

docker build  -t  test1  .

查看镜像
docker images
如何使用dockerfile文件和registry私有仓库

3)将制作的镜像运行一个容器,使容器运行时自动开启nginx服务。验证服务正常运行。
创建容器
docker run -itd --name  test1 test1:latest
进入容器
docker exec -it test1 /bin/bash

如果想要保证容器运行之后,nignx服务开启后面需要添加nginx -g "daemon off;"
docker run -itd  --name  test1-2 test1:latest  nginx -g "daemon off;"
查看容器信息
docker inspect  test1-2

curl 172.17.0.2
如何使用dockerfile文件和registry私有仓库
运行一个私有仓库,将自制镜像上传到私有仓库,且开启另外一台虚拟机同样加入私有仓库,在docker02上下载私有仓库镜像并运行一个容器,验证服务正常运行。
Registry
用docker容器运行registry私有仓库服务
docker  pull registry:2(下载镜像)
如何使用dockerfile文件和registry私有仓库

运行私有仓库服务
docker  run -itd  --name  registry   --restart=always  
-p 5000:5000  -v  /registry:/var/lib/registry  registry:2
-p:端口映射,宿主机端口:容器暴漏的端口。
-v:挂载目录,宿主机的目录;容器内的目录。(自动创建目录,并挂载)

镜像重命名;docker tag test1:latest (   镜像名)192.168.1.1:5000/test (更改后的名)

上传到私有仓库
docker push  192.168.1.1:5000/test:latest 
如何使用dockerfile文件和registry私有仓库
需要https的所以要更改(记住目录路径)
vim  /usr/lib/systemd/system/docker.service (更改)
如何使用dockerfile文件和registry私有仓库
Secure安全,insecure不安全的
[root@docker test1]# systemctl  daemon-reload
[root@docker test1]# systemctl  restart  docker

docker push  192.168.1.1:5000/test:latest (上传到私有仓库)
cd /registry/ 私有仓库位置
在第二台docker2上下载私有仓库镜像并运行一个容器,验证服务正常运行。

vim  /usr/lib/systemd/system/docker.service (更改)
如何使用dockerfile文件和registry私有仓库
systemctl  daemon-reload
systemctl  restart  docker
下载镜像
docker pull  192.168.1.1:5000/test:latest 在私有仓库下载镜像
docker images
制作容器lbs1
docker run -itd  --name  lbs1 192.168.1.1:5000/test:latest  nginx -g "daemon off;"
查看容器lbs1
docker  inspect lbs1
访问nginx
curl 172.17.0.2

以上就是dockerfile文件和registry私有仓库的使用方法了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...