有没有办法可以在Dockerfile中设置容器名称的内容?基本上我想要总是有相同的名字,所以我不必运行" $ docker ps"在构建并运行图像以获得其名称之后。
答案 0 :(得分:25)
Dockerfile
用于创建图像而不是容器。
现在,您可以使用--name
的新docker run
标记为容器命名。
如果未指定名称,Docker将自动生成名称
答案 1 :(得分:4)
是否有理由需要在dockerfile中定义它,而不仅仅是在运行它们时命名容器?
如果您使用docker run运行图像,请在命令行中指定名称:
--name="" Assign a name to the container
答案 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中配置的所有工作。