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。

请澄清。

回答你的问题:

  1. Dockerbuild议使用COPY指令将单个文件添加到图像中。 它将在/usr/local/myapp/myapp-0.0.1-jar的容器中可用

  2. 当您构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直接推送该映像。