You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何永久重命名docker-compose管理的Docker容器?

解决方案

docker-compose 默认生成容器名称的规则为 [项目名]_[服务名]_[副本序号],默认项目名取docker-compose.yml所在文件夹的名称。你通过docker rename修改的是已创建容器的临时名称,执行docker-compose down会删除原有容器,重新up时会按照compose配置的规则生成新容器,所以名称会复原。

方法1:在docker-compose.yml中指定固定容器名(最稳妥,完全自定义)

直接在对应service配置块中添加container_name参数,指定你想要的永久名称即可,修改后的配置示例如下:

version: "3.7"
services:

#Laravel App
  app:
    build:
      args:
        user: mike
        uid: 1000
      context: ./
      dockerfile: Dockerfile
    image: laravel-app
    container_name: laravel-api-app # 新增指定容器名
    restart: unless-stopped
    working_dir: /var/www/
    volumes:
      - ./:/var/www
    networks:
      - mynetwork
    
 #Nginx Service
  nginx:
    image: nginx:alpine
    container_name: laravel-api-nginx # 新增指定容器名
    restart: unless-stopped
    ports:
      - 8000:80
    volumes:
      - ./:/var/www
      - ./nginx/conf.d:/etc/nginx/conf.d/
    networks:
      - mynetwork

networks:
  mynetwork:
    driver: bridge

修改完成后执行docker-compose down && docker-compose up -d,之后不管重建多少次,容器都会使用你设置的固定名称。

方法2:修改docker-compose项目名(仅修改前缀,适合多副本部署场景)

默认项目名取yml所在文件夹名,你当前文件夹名为laravel_docker_medium_tut,所以容器前缀为此名称,可二选一修改:

  • 直接将yml所在文件夹重命名为你想要的前缀,比如laravel-api,之后启动的容器名称就会变为laravel-api_app_1、laravel-api_nginx_1
  • 每次执行compose命令时添加-p参数指定项目名,例如:docker-compose -p laravel-api up -d

注意事项

如果使用container_name指定固定名称,要保证该名称全局唯一,不能和本地已存在的其他容器重名,否则会启动失败。

内容的提问来源于stack exchange,提问作者Maik Lowrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:42:00