1.安装了Window版本的Docker之后,我们启动 Docker Quickstart Terminal ,我们会得到一个IP,我的为:
192.168.99.100
2.启动一个mysql镜像,并获取这个镜像的IP:
在开始的时候,从本机直接到172.17.0.2是网络不通的,但是我们本机能到 192.168.99.100,172.17.0.2到192.168.99.100也是通的,我们可以在本机配置一个到172.17.0.2通过192.168.99.100的路由:
route add -p 172.17.0.0 mask 255.255.0.0 192.168.99.100
这时查看路由,看到有了到 172.17.0.0 网络段的路由
这时我们本机到 172.17.0.2是可以ping通了,之后我们使用 navicat 去连接Dokcer中的mysql容器:
补充知识:docker 使用过程中出现的 bug
此记录自己在使用 docker 时,出现的一些 bug,以及自己怎么解决的。 后续不断补充使用 docker 遇到的 bug。
bug1,验证 nvidia-docker 是否安装成功(输入命令 sudo nvidia-docker run --rm nvidia/cuda nvidia-smi,产生以下错误)
lab712@lab712:~$ sudo nvidia-docker run --rm nvidia/cuda nvidia-smi
docker: Error response from daemon: OCI runtime create failed: container_linux.go:344: starting container process caused "process_linux.go:424: container init caused \"process_linux.go:407: running prestart hook 1 caused \\\"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --utility --require=cuda>=10.0 brand=tesla,driver>=384,driver<385 --pid=4760 /var/lib/docker/overlay2/2b42e419162d46fad61c0a70cbb7b16c79a8878f2dab1af682dbff4813b57316/merged]\\\\nnvidia-container-cli: requirement error: unsatisfied condition: brand = tesla\\\\n\\\"\"": unknown.
查看自己电脑安装的镜像文件,发现安装nvidia-docker时,拉取了3个不同标签(TAG)的 nvidia/cuda,如下图1所示。显卡驱动是安装好的,这里由于我用命令的时候没有指定 nvidia/cuda 的标签(TAG),所以默认情况下会直接调用标签为latest 。
重新指定标签(TAG)后,输入命令:nvidia-docker run --rm nvidia/cuda:9.0-base nvidia-smi ,则成功了。结果如图2 所示。
以上这篇WIN10系统和Docker内部容器IP互通方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 如标题所示。我需要能够检索Docker主机的IP地址和从主机到容器的端口映射,并在容器内部进行操作。 问题答案: 正如@MichaelNeale注意到的那样,没有必要使用此方法(除非仅在构建时需要此IP),因为此IP将在构建时进行硬编码。
因此,我已经成功地从注册表下载并运行了dockerfile/nginx映像。我现在如何通过在其上启动bash终端来访问其文件系统? 也许我在概念上遗漏了一些东西。我需要ssh进入它吗?谢谢
问题内容: 我正在尝试为容器提供静态IP地址。我了解我必须创建一个自定义网络。我创建了它,并且桥接接口在主机(Ubuntu 16.x)上已启动。容器从该子网获取IP,但不是我提供的静态IP。 这是我的docker-compose.yml: 容器得到10.5.0.2和10.5.0.3,而不是5和6。 问题答案: 请注意,除非您做的事情允许容器网络从外部路由到内部(例如,macvlan),否则我不建议
我正在尝试向容器提供静态IP地址。我知道我必须创建一个自定义网络。我创建它并且桥接接口在主机(Ubuntu 16. x)上。容器从此子网获取IP,但不是我提供的静态。 这是我的docker-compose.yml: 容器10.5.0.2和10.5.0.3,而不是5和6。
问题内容: 我注意到docker,我需要了解容器内部发生的情况或其中存在的文件。一个示例是从docker索引下载图像-您不知道该图像包含什么,因此无法启动该应用程序。 理想的情况是能够使用它们或等效方法。是否有工具可以做到这一点,或者我对docker的构想在认为我应该能够做到这一点上是错误的。 问题答案: UPDATE 最简单的方法:使用docker exec Docker 1.3或更高版本支持行
我注意到在使用docker时,我需要了解容器中发生了什么,或者容器中存在什么文件。一个例子是从docker索引下载图像--您不知道图像包含了什么,所以不可能启动应用程序。 理想的情况是能够将ssh转换到它们或等价物中。是否有一个工具可以做到这一点,或者是我对docker的概念化错误地认为我应该能够做到这一点。