5

我在 MAC OS 主机上配置了一个 ubuntu 12.04 虚拟机。Docker 在 ubuntu 上

我的以太网配置(桥接适配器)是

eth2      Link encap:Ethernet  HWaddr 08:00:27:f9:8f:77  
          inet addr:172.16.0.11  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fef9:8f77/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:685 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:128864 (128.8 KB)

当我尝试启动 postgresql 容器时,出现以下错误。

sudo docker run -d -name="postgresql" -p 172.17.0.2:5432:5432 -v /data/sql:/data -e USER="username" -e DB="dbname" -e PASS="passwordname" paintedfox/postgresql
Warning: '-name' is deprecated, it will be replaced by '--name' soon. See usage.
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
596355cf67dfe807f4e18cf341b3672eb0ab5e258f3fbbe332405ec101ea6949
2014/06/06 10:41:02 Error: Cannot start container 596355cf67dfe807f4e18cf341b3672eb0ab5e258f3fbbe332405ec101ea6949: listen tcp 172.17.0.2:5432: bind: cannot assign requested address
4

1 回答 1

2

我认为您错误地使用了 -p 选项。

-p, --publish=[] 将容器的端口发布到主机格式:ip:hostPort:containerPort | ip::containerPort | 主机端口:容器端口

看起来您正在尝试设置您应该拥有主机 IP 的容器的 IP

sudo docker run -d -name="postgresql" -p 5432:5432 -v /data/sql:/data -e USER="username" -e DB="dbname" -e PASS="passwordname" paintedfox/postgresql

或者

sudo docker run -d -name="postgresql" -p 172.16.0.11:5432:5432 -v /data/sql:/data -e USER="username" -e DB="dbname" -e PASS="passwordname" paintedfox/postgresql

将端口 5432 发布到系统的端口 5432。

我不认为你可以设置容器 IP。

于 2014-06-24T19:42:15.053 回答