[英]Expose mongo port in other container
您正在嘗試通過SSH 進入您的容器來訪問它,但這不是您的連接方式。 Docker提供了通過以下方法安全連接的功能。
連接到正在運行的容器- 文檔 :
docker exec -it <container name> bash
$ root@665b4a1e17b6:/#
從圖像啟動一個容器,然后連接到它-Docs :
docker run -it <image name> bash
$ root@665b4a1e17b6:/#
注意:如果它是基於Alpine的映像,則可能未安裝Bash。 在這種情況下,在命令中使用sh
代替bash
應該可以。 Mongo的Dockerfile似乎使用debian:jessie
,它將支持bash
。
您可以在mongodb官方映像之上構建自定義映像,這使您可以靈活地安裝其他必需的軟件包。
FROM mongo:latest
RUN apt-get install ssh
另外,嘗試使用docker-compose
將容器構建並鏈接在一起,這將大大簡化此過程。
version: '2'
services:
mongo:
image: mongo:latest
ports:
- "27017"
custom_project:
build:
context: . # Parent directory address of Dockerfile
dockerfile: Dockerfile-Custom # Name of Dockerfile
command: /root/docker-entrypoint.sh
這是用於mongodb官方圖像的圖像。
您必須使容器在同一網絡上運行。 無需使用SSH進入您的mongo或應用程序容器。
https://docs.docker.com/engine/userguide/networking/
首先定義一個網絡
docker network create --driver bridge isolated_nw
使用該新網絡啟動容器
docker run -p 27017:27017 --network=isolated_nw -itd --name=mongo-cont mongo
docker run --network=isolated_nw -itd --name=app your_image
mongo的映像包含EXPOSE 27017,因此從您的應用容器中,您應該能夠使用其名稱mongo-cont
訪問mongo容器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.