How to set image name in Dockerfile?

You can set image name when building a custom image, like this:

docker build -t dude/man:v2 . # Will be named dude/man:v2 

Is there a way to define the name of the image in Dockerfile, so I don't have to mention it in the docker build command?

1

5 Answers

How to build an image with custom name without using yml file:

docker build -t image_name . 

How to run a container with custom name:

docker run -d --name container_name image_name 
4

Tagging of the image isn't supported inside the Dockerfile. This needs to be done in your build command. As a workaround, you can do the build with a docker-compose.yml that identifies the target image name and then run a docker-compose build. A sample docker-compose.yml would look like

version: '2' services: man: build: . image: dude/man:v2 

That said, there's a push against doing the build with compose since that doesn't work with swarm mode deploys. So you're back to running the command as you've given in your question:

docker build -t dude/man:v2 . 

Personally, I tend to build with a small shell script in my folder (build.sh) which passes any args and includes the name of the image there to save typing. And for production, the build is handled by a ci/cd server that has the image name inside the pipeline script.

1

Here is another version if you have to reference a specific docker file:

version: "3" services: nginx: container_name: nginx build: context: ../.. dockerfile: ./docker/nginx/Dockerfile image: my_nginx:latest 

Then you just run

docker-compose build 
1

With a specific Dockerfile you could try:
docker build --tag <Docker Image name> --file <specific Dockerfile> .
for example
docker build --tag second --file Dockerfile_Second .

If you want to give a name to the docker images after building it
just build it again but give a name this time
It works great

docker build -t name_of_image . 
0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like