Docker构build和本地Docker回购问题
我正在尝试使用下面的命令创build一个泊坞窗图像。
docker build -t mytestapp .
我的DockerFile
看起来像这样
# Set the base image FROM rhel7:latest USER root # Dockerfile author / maintainer MAINTAINER Name <email.id@example.com> # Update application repository list and install the Redis server. RUN mkdir /usr/local/myapp/ ADD myapp-0.0.1-jar /usr/local/myapp/ RUN java -Dspring.profiles.active=qa -jar /usr/local/myapp/myapp-0.0.1.jar # Expose default port EXPOSE 8080
问题:
1)我添加JAR
文件的方式很好吗? 在从上面的版本准备好映像之后,它将在container
/usr/local
可用。
2)当我使用docker build
命令构build图像时,构build图像是否默认推送到docker repository hub。
由于WAR文件包含凭据,我不想将图像推送到Docker Hub,但是我们想要使用Docker分发和推送docker push
来推送到我们的本地Dockerregistry。
请澄清。
回答你的问题:
-
Dockerbuild议使用
COPY
指令将单个文件添加到图像中。 它将在/usr/local/myapp/myapp-0.0.1-jar
的容器中可用 -
当您构build图像时,它将在您的本地docker主机上可用。 它不会离开服务器,除非你明确地告诉它。
我想给你的另一个提示是推荐的docker image命名约定,它是[Repository/Author]/[Imagename]:[Version]
。
所以对于你的图像可能被称为zama/mytestapp:1.0
如果你想把它推入你的本地registry,你必须在语法[LocalRegistry:Port]/[Repository/Author]/[Imagename]:[Version]
之后命名图像。
所以你的图像现在可能被称为registry.example.com:5000/zama/mystestapp:1.0
如果您在registry中进行了身份validation,则需要先docker login
,然后使用docker push registry.example.com:5000/zama/mystestapp:1.0
直接推送该映像。