«

制作nginx本地docker镜像并推送至私有镜像仓库

时间:2023-12-29 15:14     作者:Anglei     分类: 自动化运维


由于当前的docker 版本大于19.03,故docker build已变更为docker buildx build,在使用docker buildx构建镜像的时候,可能提示少这少那,如果嫌麻烦的话,建议在安装docker的时候使用如下命令:

apt install docker*

接下来,我们以nginx为例,来构建一个适用于自己的镜像,

1.我们要下载一个nginx通用镜像,这里我们选择的版本为1.16.1-alpine版本,如下:

docker pull nginx:1.16.1-alpine

2.我们创建一个default.conf的nginx配置文件:

vi default.conf
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

3.我们再创建一个dockerfile文件
如在/data 根目录下创建dockerfile,并在新的容器中添加VIM命令,则:

vi dockerfile

包含内容如下:

FROM nginx:1.16.1-alpine
RUN apt-get update && apt-get install -y vim 
CMD ["/bin/bash"] 
COPY www/  /usr/share/nginx/html/
COPY conf/default.conf /etc/nginx/conf.d/default.conf
RUN chmod -R 755 /usr/share/nginx/html

上述代码表明,以nginx:1.16.1-alpine为模版 ,复制宿主机上的www目录下内容至镜像/usr/share/nginx/html这个目录,并以宿主机default.conf的配置文件内容为准,替换/etc/nginx/conf.d/default.conf文件,并设置/usr/share/nginx/html权限为755

4.执行以下命令进行构建nginx自定义镜像:

docker buildx build -f dockerfile -t nginx:1.16.1-alpine-v1 .

上述命令后面有个. 表明dockerfile为本地的文件

通过docker images查看,创建成功了

镜像创建成功了,我们也要试一下是否可以正常启动镜像,通过如下命令启动nginx:

docker run -d --name mynginx -p 8080:80 nginx:1.16.1-alpine-v2

通过浏览器可以正常浏览,如下图:

5.执行以下命令将新构建的nginx镜像推送至私有镜像仓库:

docker tag nginx:1.16.1-alpine-v4 registry.ABC.cn:5000/nginx:1.16.1-alpine-v4

docker push registry.ABC.cn:5000/nginx:1.16.1-alpine-v4


如图所示,显示已存在,是因为已经上传过镜像名一样的镜像了,但是由于版本不同,图最后一行显示有所区别。

本文完结,相关标签: docker

 版权所有:Anglei
 文章标题:制作nginx本地docker镜像并推送至私有镜像仓库
 除非注明,本站文章如未特殊说明均为 MAXADA社区知识库 原创,且版权所有,请勿用于任何商业用途。

推荐阅读:

看完后感想如何?

路过(0)

雷人(0)

握手(0)

鲜花(0)

鸡蛋(0)
分享到: