Docker:在Dockerfile中设置容器名称

Tyl*_*ert 14 docker dockerfile

有没有办法可以在Dockerfile中设置容器名称?基本上我想要总是使用相同的名称,所以在构建和运行图像以获取其名称后,我不必运行"$ docker ps".

Hem*_*ela 28

Dockerfile是创建图像不容器.

您现在可以使用新--name标志为容器命名docker run.

如果未指定名称,Docker将自动生成名称

  • 我的upvote回答了这个问题,因为它清楚地指出了容器和问题图像之间的实际混淆.也就是说,如果你想自动化**容器**名称,那么在[`docker-compose`]中仍然可以实现这一点(https://docs.docker.com/compose/compose-file/#container-名称)方式 (3认同)
  • 一切都非常正确,尽管也可以在构建阶段对映像进行标记:docker build -t tagname以'name:tag'格式使用,该格式又可以用于'docker run tagname' (3认同)

emo*_*xxx 7

从 docker-compose.yml 您可以创建一个容器并命名它,您可以使用:

container_name:
Run Code Online (Sandbox Code Playgroud)

看这个例子:

version: '3.7'

services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    ports:
      - 3000:3000
    networks:
      - monitoring
    volumes:
      - grafana-volume:/var/lib/grafana
Run Code Online (Sandbox Code Playgroud)

如果您不使用 Docker compose,您可以在命令行中使用 --name,如下所示:

docker run --name=grafana
Run Code Online (Sandbox Code Playgroud)

  • 问题是关于 Dockerfile 的,您正在描述如何在 docker compose 文件中执行此操作,这不是问题的答案。尽管这对于刚接触 Docker 的人来说可能会有所帮助,但这仍然不是问题的真正答案。还是我这里错了? (5认同)

jac*_*umb 6

是否有理由需要在 dockerfile 中定义它,而不仅仅是在运行时命名容器?

如果您使用 docker run 来运行您的图像,请在命令行中指定名称:

--name=""                     Assign a name to the container
Run Code Online (Sandbox Code Playgroud)

Docker 运行参考