Dockerfile构建镜像上传Harbor实战

目录

1. 使用官方安装脚本自动安装Docker

2. 构建自定义镜像(以Jenkins-Slave为例)

2.1 常见Dockerfile指令

2.2 准备材料

2.2 构建镜像

2.3 查看Docker镜像

3. 推送镜像到Harbor(推送到私有镜像仓库:http://175.24.125.8:85/)

3.1 登录私有镜像仓库

3.2 推送镜像到远程仓库


1. 使用官方安装脚本自动安装Docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# 卸载docker
yum remove docker-ce       # 删除安装包
rm -rf /var/lib/docker     # 删除镜像、容器、配置文件等内容

2. 构建自定义镜像(以Jenkins-Slave为例)

2.1 常见Dockerfile指令

FROM  		    # 基于哪个基础镜像构建
MAINTAINER 	    # 镜像作者的信息
RUN 		    # 容器镜像构建的时候需要运行的命令
ADD 		    # 在这个镜像中放置的软件压缩包,会自动解压
WORKDIR 	    # 镜像的工作目录
VOLUME 		    # 给镜像指定挂在卷
EXPOSE		    # 对外暴露的端口
CMD 		    # 容器启动后执行的命令,可以被替代,只有最后一个会生效, (通常用于启动我们的应用)
ENTRYPOINT  	# 容器启动后执行的命令,可以追加
ONBUILD 
COPY 		    # 和add类似,将压缩包拷贝进镜像中
ENV 		    # 构建时,设置环境变量,如设置mysql的用户名密码

2.2 准备材料

Dockerfile文件内容如下:

FROM jenkins/jnlp-slave:latest
MAINTAINER itcast

# 切换到 root 账户进行操作
USER root

# 安装 maven
COPY apache-maven-3.8.3-bin.tar.gz .

RUN tar -zxf apache-maven-3.8.3-bin.tar.gz && \
    mkdir -p /usr/local/soft/maven && \
    mv apache-maven-3.8.3 /usr/local/soft/maven && \
    rm -f apache-maven-3.8.3-bin.tar.gz && \
    ln -s /usr/local/soft/maven/apache-maven-3.8.3/bin/mvn /usr/bin/mvn && \
    mkdir -p /usr/local/soft/maven/apache-maven && \
    ln -s /usr/local/soft/maven/apache-maven-3.8.3 /usr/local/soft/maven/apache-maven && \
    mkdir -p /usr/local/soft/maven/apache-maven/repo
COPY settings.xml /usr/local/soft/maven/apache-maven/conf/settings.xml
USER jenkins


2.2 构建镜像

docker build -f /usr/deploy/Dockerfile -t jenkins-slave-maven:latest .
  • Dockerfile一般位于构建上下文的根目录下,也可以通过-f指定该文件的位置
  • 自定义的镜像名不能出现大写字母
  • 通过-t参数指定构建成后,镜像的仓库、标签等
  • -t后的自定义镜像名如果没有添加TAG标签的话,默认使用latest
  • 最后的点不能省略

由于Jenkins-Slave的Dockerfile,需要安装Maven, 此处在Dockerfile所在文件夹下执行

cd /usr/deploy
docker build -t jenkins-slave-maven:latest .

2.3 查看Docker镜像

docker images

3. 推送镜像到Harbor(推送到私有镜像仓库:http://175.24.125.8:85/

3.1 登录私有镜像仓库

docker login --username admin --password Harbor12345 http://175.24.125.8:85

出现错误

[root@VM-0-2-centos ~]# docker login --username admin --password Harbor123456 http://175.24.125.8:85
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get “https://175.24.125.8:85/v2/”: http: server gave HTTP response to HTTPS client

vi /etc/docker/daemon.json

# 插入以下语句:
{"insecure-registries": ["http://175.24.125.8:85"]}

# 重新加载服务的配置文件
systemctl daemon-reload
# 重启docker
systemctl restart docker

3.2 推送镜像到远程仓库

# 在项目中标记镜像
docker tag jenkins-slave-maven:latest 175.24.125.8:85/library/jenkins-slave-maven:latest

# 推送镜像到当前项目
docker push 175.24.125.8:85/library/jenkins-slave-maven:latest

需要等待5-10分钟

上传成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值