记一次docker build镜像和push镜像出现的问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

现在的服务部署基本都是使用容器部署,尤其是云平台这种云服务都是使用镜像在容器中启动的,所以简单的容器操作还是需要去了解的,这次记录下之前使用时出现的问题。


一、docker build镜像

1. 在构建完基础容器时执行dockerfile文件时出现了执行失败报错

遇到这个问题先检查下dockerfile有没有编写错误,正常的格式如下

# 以此镜像作为基础镜像构建新的镜像
FROM centos:7

# 维护者信息
MAINTAINER chen

# 将jdk-8u191-linux-x64.tar.gz文件添加到新的镜像的的/usr/local/路径下,使用ADD指令会直接对jdk-8u144-linux-x64.tar.gz进行解压缩,不用再单独的tar解压jdk了
ADD jdk-8u191-linux-x64.tar.gz /usr/local/

# 设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

如果格式没有问题,那么可能是你的网络不在外网导致build失败(我之前就是网络在内网才构建失败,因为构建时有一些环境是需要下载的)

2. 构建完的镜像是中文乱码

在构建完的时候运行镜像发现镜像的是中文乱码,不要急这个时候修改下你的dockerfile就可以解决这个问题

# 以此镜像作为基础镜像构建新的镜像
FROM centos:7

# 维护者信息
MAINTAINER chen

# 将jdk-8u191-linux-x64.tar.gz文件添加到新的镜像的的/usr/local/路径下,使用ADD指令会直接对jdk-8u144-linux-x64.tar.gz进行解压缩,不用再单独的tar解压jdk了
ADD jdk-8u191-linux-x64.tar.gz /usr/local/
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

ENV LC_ALL zh_CN.UTF-8

# 设置环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin

或者在你构建的基础镜像将其设置好中文格式这样dockerfile不需要重新yum字体库和添加utf_8的格式
ps: 最新的centos 8 不支持中文字体库


二、docker push镜像

dockerpush镜像的时候报如下错误
在这里插入图片描述
这里是因为没有添加私有仓库域名地址 需要在/etc/docker/daemon.json 下添加

在这里插入图片描述
添加完执行

systemctl daemon-reload
systemctl restart docker

这样再测试push就可以推送到相应的私有库上去了

猜你喜欢

转载自blog.csdn.net/weixin_44011409/article/details/108506180
今日推荐