会显示自己以及(– link)软连接的容器IP
2.使用命令
docker inspect --format '{
{ .NetworkSettings.IPAddress }}' <container-ID>
或
docker inspect <container id>
或
docker inspect -f '{
{range .NetworkSettings.Networks}}{
{.IPAddress}}{
{end}}' container_name_or_id
3.可以考虑在 ~/.bashrc 中写一个 bash 函数:
function docker_ip() {
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
source ~/.bashrc 然后:
$ docker_ip <container-ID>
172.17.0.6
4.要获取所有容器名称及其IP地址只需一个命令。
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
5.显示所有容器IP地址:
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
我们在使用docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:
host模式,使用–net=host指定。
container模式,使用–net=container:NAME_or_ID指定。
none模式,使用–net=none指定。
bridge模式,使用–net=bridge指定,默认设置。
默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址,这可能不是我们想要的,本文介绍在centos7 docker环境下使用pipework脚本对容器分配固定IP。
# brctl show
# docke
由于默认的bridge桥接网络,重启容器后会改变ip地址。在一些场景下我们希望固定容器IP地址。
docker-compose是docker的一个编排工具,相对于命令模式创建网络,容器等。使用配置文件相对来说更方便,可追溯问题。
直接粘贴docker-compose.yml文件
version: '2'
services:
nginx:
image: nginx:1.13.12
container_name: nginx
restart: always
tty: true
networks:
extnetwork:
ipv4_addre
备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段
docker network create –subnet=172.172.0.0/16 docker-ice
注:docker-ice为自定义网桥的名字,可自己任意取名。
第二步:在你自定义的网段选取任意IP地址作为你要启动的container的静态IP地址
备注:这里在第二步中创建的网段中选取了172.172.0.10作为静态IP地址。这里以启动docker-ice为例。
docker run -d –net docker-ic
一直以为Docker是没有IP地址的,其实Docker的网络模板有点类似我们平常使用虚拟机的host-only模式,容器和宿主机组成一个独立的局域网,宿主机的IP为172.17.0.1,对应主机的网络名称为docker0。所以要想看到docker容器的ip地址,只需要安装net-tools就可以了。之后就可以用ifconfig查看了。...
解决方案:
1.docker exec -it ID/NAMES ip addr
root@localhost ~]# docker exec -it chemex ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qle
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。
1.查看网络模式
docker network ls
2.创建一个新的bridge网络
docker network create --driver bridge --subnet=172.18.12.0/16 --gatewa
从图中可看见,192.168.99.1就是docker的虚拟网卡ip,使用Docker desktop启动的docker就是如图的适配器名称,使用Docker toolbox部署的docker,网卡适配器名称是VirtualBox。作者踩的坑:我自己在度娘里遨游的时候,找到了两种方法,一个是建立一个容器网络network,将容器放入这个容器网络中,这种方式只能实现容器与容器直接的快速交互, 若用docker虚拟网卡ip其实也可以互相访问,没必要建立容器网络。