docker集装箱内的docker转发
我正在试图获得一个有端口转发的容器,例如在容器中运行的代码可以访问远程数据库。 所以我把这条线
CMD ssh -L 27017:localhost:27017
在我的docker文件,然后运行它,但在任何情况下,我看不到端口转发(我尝试运行而不是CMD,并尝试以交互方式运行容器或使用-D,但在前一种情况下,我没有转发和后一种情况下,即使在将&& / bin / bash加到ssh命令结束之后,容器也会在启动后立即退出)。 我成功做到这一点的唯一方法是进行交互式运行
$docker run -it --name cont_name im_name /bin/bash
然后从交互式shell执行端口转发所需的ssh(现在将shell连接起来)。 然后从我的本地主机的另一个窗口,我'进入'第一个容器使用
$ docker exec -it cont_name bash
我现在确实看到端口转发。 有没有更好的/自动的方式来做到这一点? “屏幕”似乎是一个容器中运行的麻烦。
我认为你想要做的是“绑定”端口从容器到主机。 首先,您需要知道的是,如果端口已经通过您计划使用的docker容器中的EXPOSE
公开EXPOSE
。 接下来的事情是将这个添加到docker run...
:
-p 127.0.0.1:3360:3306
假设这是一个你正在使用的mysql实例,所公开的端口是3306,所以你可以将它绑定到同一个端口上的主机,或者你希望在主机上的任何端口。
- Docker:Container再次重新启动
- docker工人组成Django和节点
- 如何自动完成一个命令别名的多级命令?
- 使用特定的cgroup挂载运行docker守护进程
- 如何在官方的postgreSQL 10.0 docker镜像中增加max_connection
- docker中的mqtt服务器 – 一种从DockerCompose.yaml运行<mosquitto_passwd -U>的方法
- docker swarm init无法selectIP地址错误
- VirtualBox中的CentOS 7 – 无法parsing主机:mirrorlist.centos.org
- Nginx从nginx文件夹获取内容而不是从磁盘caching中获取内容