端口映射
当容器中运行一些应用,可以通过-p ,-P 参数来指定端口映射
使用-P时,Docker会随机映射一个49000~49900的端口到内部容器开放的端口
如果一个镜像中没有可以对外提供的服务,使用-P参数基于该镜像启动容器后,不会有端口的映射
1 | 例如:docker run -idt -P centos /bin/bash |
另外几种查看端口映射的方法
1 | docker port ID |
使用-p(小写)可以指定要映射的端口使用HostPort : ContainPort将本地的5000映射到容器的5000,会默认绑定本地所有接口上的所有地址
可以多次使用-p参数绑定多个端口
1 | docker run -d -p 80:80 httpd |
使用IP:HostPort:ContainPort格式指定映射使用一个特定地址
1 | docker run -d -p 127.0.0.1:80:80 httpd |
使用IP::ContainerPort 映射到指定地址的任意端口
1 | docker run -d -p 127.0.0.1::80 httpd |
容器互联
创建一个数据库容器
1 | docker run -idt --name db postgres |
1 | docker run -idt -P --name web --link db:db httpd /bin/bash |
使用–link 选项,参数格式为name:alias 即要连接的容器名称 : 这个连接的别名
再建立一个web2容器,同web的配置,查看环境变量,可以看到与db容器的连接,以DB_开头的环境变量都是提供web连接db的
进入到web容器中查看/etc/hosts .可以看到db容器的信息
在web容器中安装ping命令
1 | apt-get update 更新源 |