您的位置:首页 > 运维架构 > Docker

docker构建私有仓库

2020-06-25 04:56 387 查看

一、题目

 (1)使用dockerifle制作一个镜像,基于centos7镜像部署安装nginx服务。

 2)将制作的镜像运行一个容器,使容器运行时自动开启nginx服务。验证服务正常运行。

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

二、部署步骤

  (一、)制作镜像

      1.创建一个目录用于创建dockerfile文件

[code]mkdir test3

      2.上传nginx源码包,如果没有可以进入官网下载

[code]rz
或者
wget http://nginx.org/download/nginx-1.14.2.tar.gz

        

     3.进行编写dockerfile

[code]vim Dockerfile

FROM centos:7			#设置基础镜像。
RUN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel	#解决nginx依赖环境,安装依赖包。
ADD nginx-1.14.0.tar.gz /usr/src/		#将本地的nginx源码包复制到镜像中并解压。
RUN useradd -M -s /sbin/nologin nginx		#创建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/			#对nginx执行命令文件做软链接。
RUN nginx -t			#检查配置是否有误。
RUN nginx		#启动服务。
EXPOSE 80		#开启容器的80端口。

   4.生成镜像

[code]docker build -t centos-nginx:wang .

 5.查看镜像

 

 (二、)运行容器

 6.运行容器

[code]docker run -itd --name nginx-moban -p 80:80 --restart=always centos-nginx:wang nginx -g "daemon off;"

   参数说明:

      -itd:提供一个可交互的伪终端,并且保存后台运行。

     --name:为容器取名。

     -p:端口映射,宿主端口:容器端口

     --restart=always:始终保持运行(随着docker开启而运行)   

     nginx -g "daemon off;" :保证容器运行之后,nginx服务就直接开启,不必手动开启。

7.访问测试

 

(三、)构建私有仓库

           1.下载私有仓库镜像

[code]docker pull registry:2

            2.查看镜像

 

         3.运行容器

[code]docker run -itd --name siyoucangku --restart=always -p 5000:5000 -v /registry:/mnt/registry registry:2

参数:前面使用过的略过。

     -itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
     -v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化  (挂载目录。宿主机的目录:容器内的目录。    #也可以自动创建目录);
     -p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
     --restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
    --name registry:创建容器命名为registry,你可以随便命名;
    registry:latest:这个是刚才pull下来的镜像;

       4.打标签

[code]docker tag centos-nginx:wang  120.26.83.25:5000/nginx

        5.验证

[code]curl http://120.26.83.25:5000/v2/_catalog

      

    能看到json格式的返回值时,说 明registry已经运行起来了。

      6.上传镜像,但是会报错

[code]docker push  120.26.83.25:5000/nginx:latest

       

    解决方法:

[code]vim /etc/docker/daemon.json

{
"registry-mirrors": [ "https://registry.docker-cn.com"],
"insecure-registries": [ "120.26.83.25:5000"]
}

       7.重启docker

[code]ystemctl  restart docker

    8.再次上传镜像

[code]docker push  120.26.83.25:5000/nginx:latest

   9.查看是否成功

[code]curl  http://120.26.83.25:5000/v2/_catalog

       

    (四、)验证

        1.删除原有镜像

[code]docker rmi centos-nginx

        2.下载镜像:

[code]docker pull 120.26.83.25:5000/nginx

   3.启动查看:

         

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: