如何让 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 移到图像名称之前。多么愚蠢的错误!
机器信息: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 移到图像名称之前。多么愚蠢的错误!