sshdocker集装箱从外面
我有一个docker-compose.yml
文件,包含两个节点。 我已经安装ssh
通过命令RUN apt-get install -y ssh
和暴露的端口22为ssh
(在这里讨论)在两个:
version: "2" services: nodex: build: context: . dockerfile: Dockerfile-X args: - MY_USER - MY_PASS environment: - MY_DNS=${MY_DNS} - MY_HOME=${MY_HOME} env_file: - .env - envs/nodex/nodex1.env ports: - "${NODE_X_TOMCAT_PORT}:${NODE_X_TOMCAT_PORT}" - "4040:22" networks: zizi_network: ipv4_address: ${NODE_X_IP} nodey: build: context: . dockerfile: Dockerfile-Y environment: - MY_DNS=${MY_DNS} - MY_HOME=${MY_HOME} env_file: - .env - envs/nodey/nodey1.env - envs/nodey/nodey2.env - envs/nodey/nodey3.env ports: - "${NODE_Y_JMX_PORT}:${NODE_Y_JMX_PORT}" - "${NODE_Y_WS_PORT}:${NODE_Y_WS_PORT}" - "5050:22" networks: zizi_network: ipv4_address: ${NODE_Y_IP} networks: zizi_network: driver: bridge ipam: driver: default config: - subnet: 175.80.70.0/24
我的.env
文件包含:
NODE_Y_IP=175.80.70.10 NODE_Y_JMX_PORT=1998 NODE_Y_WS_PORT=9000 NODE_X_IP=175.80.70.11 NODE_X_TOMCAT_PORT=8153
我也有另一个安装了ssh
Dockerfile
; 但是由于某种原因我在docker-compose
之外构build并运行它。 这是我的docker run
这个文件的命令:
docker run -it --net=host -p 6060:22 --env-file .env --env-file envs/nodez/nodez1.env -e DISPLAY -v ${HOME}/.Xauthority:/root/.Xauthority -v $(pwd)/log:/output/lastrun/ --name nodez_container nodez_image_name:nodez_image_tag
请注意 , -e DISPLAY -v ${HOME}/.Xauthority:/root/.Xauthority
被传递,只是因为我在容器中有x11
应用程序。
由于我已经通过我自己的主机作为它的networking,我认为它可以观看我的本地主机可以观看的任何东西; 我不确定这是真的,这只是我的一个假设。
我想要的是:
- 从
nodez
到节点nodex
和nodez
ssh
。
在运行docker-compose.yml
docker-compose build
和nodez
docker-compose run
分别运行docker-compose.yml
节点后,然后使用上面的nodez
docker run
命令docker run
nodez
,我尝试在节点和我的localhost之间build立ssh
连接,结果是:
- 我可以在
nodez
使用firefox
打开安装在nodex
web应用程序。 - 我只能从
nodez
ssh mylocaluser@localhost
和ssh mylocaluser@127.0.0.1
nodez
。 - 我可以从三个节点
ssh mylocaluser@my.local.ip.addr
。 - 我不能通过端口
22
从我的本地主机ssh
节点nodex
和nodex
与他们的IP地址,也不暴露端口4040
和5050
分别。 - 我不能通过彼此
ssh
节点与他们的IP地址从我的本地主机不通过端口22
也没有暴露端口4040
和5050
。 - 我可以连接到本地networking中所有节点上的IP地址为
192.168.100.0
的计算机。
编辑1:
我检查了nodex
端口:
docker port ssh_nodex_1 22/tcp -> 0.0.0.0:4040 8153/tcp -> 0.0.0.0:8153
然后:
ssh root@127.0.0.1 -p 4040 ssh_exchange_identification: read: Connection reset by peer
和:
curl -i 175.80.70.11:4040 curl: (7) Failed to connect to 175.80.70.11 port 4040: Connection refused curl -i 175.80.70.11:22 curl: (7) Failed to connect to 175.80.70.11 port 22: Connection refused