如何让 docker 容器对其主机开放

How to make docker container open to its host

机器信息:nectar虚拟机实例
操作系统:Ubuntu 20.04 LTS (Focal) amd64
安全组:default + ssh + http
docker 图片信息:ibmcom/couchdb3:3.1.1
输入命令行并输出:

命令:
docker pull ibmcom/couchdb3:${VERSION} 其中版本设置为 3.1.1
输出:

3.1.1: Pulling from ibmcom/couchdb3
Digest: sha256:784a43d1acd4cfa78a5fb4992a2d7a6aecec03d1b6a6458f443399abb8f38902
Status: Image is up to date for ibmcom/couchdb3:3.1.1
docker.io/ibmcom/couchdb3:3.1.1
root@yingrui1:/home/ubuntu#

命令:

root@yingrui1:/home/ubuntu# docker create\
      --name couchdb${node}\
      --env COUCHDB_USER=${user}\
      --env COUCHDB_PASSWORD=${pass}\
      --env COUCHDB_SECRET=${cookie}\
      --env ERL_FLAGS="-setcookie \"${cookie}\" -name \"couchdb@${node}\""\
      ibmcom/couchdb3:${VERSION} --network host -p 8080:5984

其中“节点是一个IP地址

输出:
afe973a0515cb8d4a7acf13bcdf019f7b6029dcf291c449f0a2a1772f6c80234

命令:
docker start couchdb@172.0.17.2 注意“couchdb@172.0.17.2”是我刚刚创建的容器
输出:
some long string

命令:
docker ps 输出:

CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS         PORTS                          NAMES
04aaabb201f1   ibmcom/couchdb3:3.1.1   "/docker-entrypoint.…"   22 seconds ago   Up 3 seconds   4369/tcp, 5984/tcp, 9100/tcp   couchdb172.17.0.2

如果我理解正确,您需要端口显示类似“4369->0.0.0.0”的映射。当前的端口信息显示它没有向主机开放它的端口。所以我想知道你该怎么做?我也尝试了 expose-P 但它们都不起作用,我现在真的很绝望,任何帮助将不胜感激。

正如@David Maze 指出的那样,问题是我应该将 -p 移到图像名称之前。多么愚蠢的错误!