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

如何使docker容器对其主机开放,docker,containers,couchdb,Docker,Containers,Couchdb,机器信息:nectar虚拟机实例 操作系统:Ubuntu 20.04 LTS(Focal)amd64 安全组:默认+ssh+http docker图像信息:ibmcom/couchdb3:3.1.1 命令行类型和输出: 命令: docker pull ibmcom/couchdb3:${VERSION}其中VERSION设置为等于3.1.1 输出: 命令: root@yingrui1:/home/ubuntu# docker create\ --name couchdb${node}

机器信息:nectar虚拟机实例
操作系统:Ubuntu 20.04 LTS(Focal)amd64
安全组:默认+ssh+http
docker图像信息:ibmcom/couchdb3:3.1.1
命令行类型和输出:

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

命令:

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
其中“node”是一个ip地址

输出:
AFE973A0515CB8D4A7ACF13BCDF019F7B029DCF291C449F0A2A1772F6C80234

命令:
docker启动couchdb@172.0.17.2
请注意“couchdb@172.0.17.2“是我刚刚创建的容器
输出:
一些长字符串

命令:
docker ps
输出:


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

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

docker
-p
这样的选项需要放在图像名称之前。(您可能不想使用
--networkhost
)图像名称后的任何内容都被解释为要运行的命令。您是一个传奇人物!!!谢谢
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
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