13个命令

copy和add的区别
entry_point和CMD区别

上述2个指令只能执行最后一个,CMD命令只能出现一次,entry_point 能够获取docker run命令行的参数

第一步,编写dockerfile

tee Dockerfile<<EOF
FROM centos
WORKDIR /var/www/html
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
RUN yum -y  nginx
ADD html.zip /var/www/html
COPY docker.html.conf /etc/nginx/conf.d
RUN echo " `which nginx`    && tail -f /dev/null ">cmd
EXPOSE 80
RUN chmod +x cmd
CMD /var/www/html/cmd
EOF

#第二部,编译

默认的文本dockerfile文件的名字一定是Dockerfile

docker build -t nexus.ycjy.info/centos-nginx:1.0 . 
[+] Building 79.9s (7/11)                                                                                                                                                 docker:default
 => [internal] load .dockerignore                                                                                                                                                   0.2s
 => => transferring context: 2B                                                                                                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                                                                                                0.3s
 => => transferring dockerfile: 396B                                                                                                                                                0.0s
 => [internal] load metadata for docker.io/library/centos:latest                                                                                                                   13.6s
 => [1/7] FROM docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177                                                                    54.5s
 => => resolve docker.io/library/centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177                                                                     0.8s
 => => sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 762B / 762B                                                                                          0.0s
 => => sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc 529B / 529B                                                                                          0.0s
 => => sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6 2.14kB / 2.14kB                                                                                      0.0s
 => => sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1 83.52MB / 83.52MB                                                                                   30.3s
 => => extracting sha256:a1d0c75327776413fa0db9ed3adcdbadedc95a662eb1d360dad82bb913f8a1d1                                                                                          15.4s
 => [internal] load build context                                                                                                                                                   0.5s
 => => transferring context: 186B                                                                                                                                                   0.0s
 => [2/7] WORKDIR /var/www/html                

第三步

修改docker的配置文件,使得能够在不使用安装证书的情况下,能够使用https提交。

vim /etc/docker/daemon.json


{
"registry-mirrors": [
"https://registry.hub.docker.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}

然后执行
systemctl deamon-reload && systemctl restart docker

第四步 上传镜像

先登录到公司私有docker仓库
docker login https://nexus.ycjy.info
username: yanfeng
passowrd:


login success

docker push nexus.ycjy.info/centos-nginx:1.0

注意

nexus3.19以后不再支持group docker 免费上传,需要PRO licences。可以选择低版本。

或者统一使用harbor,通过反向代理合并的一个域名下。

作者:严锋  创建时间:2023-10-08 10:48
最后编辑:严锋  更新时间:2025-05-09 15:48