千家信息网

如何使用dockerfile文件和registry私有仓库

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,如何使用dockerfile文件和registry私有仓库?相信很多新手小白还没学会这个技能,通过这篇文章的总结,希望你能学会使用dockerfile文件和registry私有仓库。Dockerfil
千家信息网最后更新 2025年12月03日如何使用dockerfile文件和registry私有仓库

如何使用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:7RUN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-develADD nginx-1.14.0.tar.gz /usr/src/RUN useradd -M -s /sbin/nologin nginxWORKDIR /usr/src/nginx-1.14.0RUN ./configure --prefix=/usr/local/nginx --user=nginx --group=nginxRUN make && make installRUN ln -s /usr/local/nginx/sbin/* /usr/local/sbin/RUN nginx -tRUN nginxEXPOSE 80

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

执行Dockerfile文件的命令:

docker build  -t  test1  .

查看镜像
docker images

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

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

运行私有仓库服务
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

需要https的所以要更改(记住目录路径)
vim /usr/lib/systemd/system/docker.service (更改)

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 (更改)

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私有仓库的使用方法了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

容器 镜像 运行 目录 仓库 私有 文件 服务 命令 宿主 宿主机 端口 安全 制作 验证 上下 多条 拷贝 位置 使用方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 汕尾数据链软件开发报价行情 川大计算机考研网络安全 天津服务器硬盘多少钱 坂田软件开发公司 数据库完整性约束的功能 天然林数据库审查注意事项 迷你世界服务器被黑客给炸了 如何调用数据库的数据制作统计图 网络安全法 自什么起实行 筛选后的粘贴数据库 java软件开发如何外包 吃鸡服务器连接超时8.1.6 数据库ado.net项目 一台服务器能做两个raid 连接数据库需要工具吗 穿越火线与服务器连接失败 互联港湾网络技术公司 美国网络技术垄断 手机如何给网络安全设置密码 学校网络安全培训计划 租服务器怎么建网页 软件开发类公司实习内容 青岛软件开发驻场哪里好 昆明综合软件开发网上价格 iis发布网站配置数据库 魔兽怀旧服哪个服务器人多好玩 珠海卫星软件开发回收价 数据产品经理需要懂数据库吗 软件开发技术合同认定 浙江云主机品牌云服务器
0