Docker:在Dockerfile中设置容器名称

时间:2016-05-25 17:38:39

标签: docker dockerfile

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

4 个答案:

答案 0 :(得分:25)

Dockerfile用于创建图像而不是容器。

现在,您可以使用--name的新docker run标记为容器命名。

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

答案 1 :(得分:4)

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

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

--name=""                     Assign a name to the container

Docker Run reference

答案 2 :(得分:0)

在docker-compose.yml中,您可以创建一个容器并命名为:

container_name:

请参见以下示例:

version: '3.7'

services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    restart: always
    ports:
      - 3000:3000
    networks:
      - monitoring
    volumes:
      - grafana-volume:/var/lib/grafana

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

docker run --name=grafana

答案 3 :(得分:0)

我要添加另一个基于emoxxx's response的选项。您可以在现有的Dockerfile周围包装一个非常简单的docker-compose.yml来命名容器。因此,您可以按原样保留现有的Dockerfile,并从一个非常基本的新docker-compose.yml文件中调用if,以获取container_name配置选项。

在现有Dockerfile所在的文件夹中创建一个新的docker-compose.yml文件。新的docker-compose.yml可能如下所示:

version: '2'
services:
  myservice:
  build:
    context: .
    dockerfile: Dockerfile
  container_name: 'the_new_container_name'

然后使用以下命令运行它:

docker-compose up

而不是docker run。它仍然会完成您在Dockerfile中配置的所有工作。