千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何使用dockerfile文件和registry私有仓库?相信很多新手小白还没学会这个技能,通过这篇文章的总结,希望你能学会使用dockerfile文件和registry私有仓库。Dockerfil
千家信息网最后更新 2026年11月01日如何使用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安全错误 数据库的锁怎样保障安全 博彦科技互联网金融 广州百单互联网科技有限公司 互联网科技巨头监管 厦门中拓互联网络科技有限公司 互联网科技卖菜 以房互联网科技 迪茉互联网科技 互联网科技ppt模板 米客互联网科技 赫美联合互联网科技 互联网高科技股票 广西拼得多互联网科技有限公司 互联网科技教育视频 互联网科技项目计划书材料类 银川新华互联网科技学校联系电话 畅思互联网科技 佛山市拉法互联网科技有限公司 中国科技和美国互联网 数字互联网科技有限公司 株洲百竞科技的互联网营销顾问 苏州找大状互联网科技有限公司 互联网科技工作委员会副主任毛军 科技信息互联网 未来的互联网科技 互联网科技logo设计 现代科技和互联网有关系吗 世界互联网科技公司市值排名 南通创西澳互联网科技有限公司 下一代互联网重大应用科技园 2021世界互联网领先科技成果发布
0