获取/显示docker容器的ip地址

很多时候,我们并没有使用docker compose的方法将多个容器集成在一起。这时候一个容器需要访问另外一个容器,或者主机需要访问容器,这个时候需要知道目的容器的ip地址,可以使用下面方法。

1 命令

1.1 获取指定容器的ip地址

sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_container_id

例如:

root@VM-8-9-ubuntu:~# sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' mysql-xyang
172.17.0.2
其中,mysql-xyang是我的docker中一个容器的名称

1.2 获取所有容器的ip地址

sudo docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress}}' $(sudo docker ps -aq)"

例如:

root@VM-8-9-ubuntu:~# sudo docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress}}' $(sudo docker ps -aq)
/nginx-xyang - 172.17.0.4
/phpfpm-xyang - 172.17.0.3
/mysql-xyang - 172.17.0.2

2 简化命令

你我皆凡人,希望越简单越好,同时也是懒人,希望输入的内容越少越好【顺便提一句,其实这是个双刃剑】。好,我们来简化一下,编辑 /etc/profile 文件,让所有的login会话都可以享受这一福利。在 /etc/profile 尾部增加如下代码:

function container_ip() {
	sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${1}
}

alias "container_ips=sudo docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress}}' \$(sudo docker ps -aq)"
alias docker_ip=container_ip
alias docker_ips=container_ips

 修改完毕之后,我们新开一个login会话过程,进行验证。

xiaobo.yang@VM-8-9-ubuntu:~$ container_ip mysql-xyang
172.17.0.2

xiaobo.yang@VM-8-9-ubuntu:~$ docker_ip mysql-xyang
172.17.0.2

xiaobo.yang@VM-8-9-ubuntu:~$ container_ips
/nginx-xyang - 172.17.0.4
/phpfpm-xyang - 172.17.0.3
/mysql-xyang - 172.17.0.2

xiaobo.yang@VM-8-9-ubuntu:~$ docker_ips
/nginx-xyang - 172.17.0.4
/phpfpm-xyang - 172.17.0.3
/mysql-xyang - 172.17.0.2

需要提醒一下的时,sudo -s 将提升到 root权限时,并不会继承 /etc/profile中的内容。需要换一个姿势: sudo -i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值