How to set image name in Dockerfile? How to set image name in Dockerfile? docker docker

How to set image name in Dockerfile?


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


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.


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