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在运行CON开发云主机域名TAINER(容器)时运行,只能写一条,如果写多条,最后一条生效
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如果编译安装时,MAKE不上,需要在Dockerfile文件中添加
yum一个make。执行Dockerfile文件的命令:查看镜像
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 dockerdocker 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怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注开发云行业资讯频道!

相关推荐: Office 365 设定规则避免spoof邮件

最近公司收到的spoof 的钓鱼邮件特别多。有的很容易识别,就是显示一个同名的用户名称 但是邮件明显是其他域名的;这个我已经设定了一个规则进行过滤https://blog.51cto.com/beanxyz/2326244还有的是伪装成公司内部的邮件,通过公共…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/27 10:01
Next 05/27 10:01

相关推荐