我正在尝试配置docker守护程序,以便我可以从Docker容器内部连接到它,我开始..
所以我将/etc/docker/daemon.json改为
window.addEventListener('load', function(){
var newVideo = document.getElementById('videoElementId');
newVideo.addEventListener('ended', function() {
this.currentTime = 0;
this.play();
}, false);
newVideo.play();
});
所以我通过docker bridge连接到它。但是当我重启docker时我得到了
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
所以首先我的问题是它正在侦听ipv6而不是ipv4。并根据 Make docker use IPv4 for port binding 它应该仍然有效,但它没有..当我尝试
netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address
State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3728/mysqld
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 24253/redis-server
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3756/nginx
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3634/sshd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3756/nginx
tcp6 0 0 :::8010 :::* LISTEN 4230/apache2
tcp6 0 0 :::9200 :::* LISTEN 26824/java
tcp6 0 0 :::9300 :::* LISTEN 26824/java
tcp6 0 0 :::22 :::* LISTEN 3634/sshd
tcp6 0 0 :::2375 :::* LISTEN 1955/dockerd
时无法连接
telnet 172.17.0.1(docker host) 2375
的工作原理。如何连接到主机上运行的docker?我在Ubuntu 14.04.5 docker Version:17.06.2-ce
上运行答案 0 :(得分:5)
您可以启动将主机泊坞插座安装到容器中的容器。
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
通过此设置,容器内的Docker客户端将使用来自主机的Docker守护程序。您的容器将能够使用在主机中运行的守护程序来构建,运行,推送等。请注意,通过这些设置,一切都在主机上发生,因此如果您启动新容器,它们将成为“兄弟”容器。
修改强>
如果您使用的是网桥,则可以使用主机IP地址连接到主机上运行的任何服务。
例如,我在我的主机上使用IP 10.0.0.1运行mysqld,并从我可以执行的容器中运行
mysql -u user -p -h 10.0.0.1
诀窍是从容器中找出主机IP地址。
在Docker for Mac中(我运行的是版本17.07.0)就像连接到特殊主机“docker.for.mac.localhost”一样简单
另一种选择是在您的环回接口
中添加别名IPsudo ifconfig lo0 alias 192.168.1.1
然后在运行容器时为此别名IP添加主机
docker run --rm -ti --add-host host-machine:192.168.1.1 mysql:5.7 bash
使用此设置,您应该可以在容器内部
mysql -u user -p -h host-machine