dockerfile文件与私有仓库registry怎么用

64次阅读
没有评论

共计 3446 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章主要为大家展示了“dockerfile 文件与私有仓库 registry 怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“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 怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3446字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)