守护进程的错误响应:无效的容器名称(tomcat:8.0),仅允许[a-zA-Z0-9][a-zA-Z0-9_.-]

问题描述 投票:0回答:2

我正在尝试通过 Vagrant Docker 规定运行 docker 容器:

d.run "tomcat:8.0", args: "-it -d -p 8888:8888 --name tomcat8"

Vagrant 可以很好地拉取图像,但是当涉及到运行容器时,我得到:

来自守护程序的错误响应:仅容器名称无效 (tomcat:8.0) 允许 [a-zA-Z0-9][a-zA-Z0-9_.-]

我想保留

:8.0
,以便我确定我运行的是正确的图像版本。

docker vagrant
2个回答
2
投票

事实证明,Vagrant 默认情况下使用图像名称作为容器名称,即使我使用了

--name
arg。

就我而言,这很不幸,因为我是从 Dockerhub 的官方 Tomcat 存储库中提取数据,因此无法更改映像名称。

我发现 Vagrant 有一个名为

auto_assign_name
的额外设置,必须将其设置为
false
才能使用
--name
arg。

因此,有效的 Vagrant 系列将是:

d.run "tomcat:8.0", args: "-it -p 8080:8080 --name tomcat8", auto_assign_name: false

0
投票

就我而言,当我尝试使用图像标签设置 Dockerfile 时,Docker 中出现了错误。

我是这样设置的:

version: '3.8'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    image: easypanel-nextjs:0.0.1
    container_name: nextjs-sqlite
    env_file:
      - .env.production
    ports:
      - 3000:3000
    volumes:
      - ./data:/data

有效的是将

image
移动到
build
之上。奇怪的自动对焦错误。

version: '3.8'

services:
  web:
    image: easypanel-nextjs:0.0.1
    build:
      context: .
      dockerfile: Dockerfile
    container_name: nextjs-sqlite
    env_file:
      - .env.production
    ports:
      - 3000:3000
    volumes:
      - ./data:/data

这个错误是为了后代:

0.0s 来自守护进程的错误响应:容器名称无效(nextjs-sqlite:0.0.1),仅允许 [a-zA-Z0-9][a-zA-Z0-9_.-]

© www.soinside.com 2019 - 2024. All rights reserved.