linux

docker static ip address - docker 静态IP

docker static ip 在访问 mysql 的时候将非常有用,比如 mysql 指定了ip,docker 静态IP主要是通过自定义网络来实现,而如果需要访问数据库,最好的办法是使用 --link 链接docker 容器,然后在应用里使用链接名称。

综上述,如果需要指定 IP 则需要先自定义网络,然后创建的时候指定网络,如果需要使用 mysql 则还需要 --link 选项,下面我们进入主题。

docker 自定义网络

docker network create --subnet=172.27.0.0/16 dockerNetwork

上述命令创建了一个自定义的网络,名称为 dockerNetwork,ip 范围为 172.27.0.1 - 172.27.255.254 ,下面我们创建 docker 容器,并分配网络。

docker 静态 IP 地址 - docker static ip address

docker run --name yerbe-api -p 5000:3000 --link mysql:mariadb --network dockerNetwork --ip 172.27.1.10 -itd node sh /usr/local/bin/start.sh

这里,创建了一个名字为 yerbe-api 的容器,并把主机的 5000 端口绑定到该容器的 3000 端口,然后把它和 名为 mysql 的容器链接,这里 mysql 是已存在的容器名,mariadb 是别名。接着指定了网络为 dockerNetwork,ip 为 172.27.1.10 ,最后的 sh /usr/local/bin/start.sh 是该容器启动后执行的命令。

关于 docker 的博客,你可以参考:https://www.kpromise.top/?s=docker

docker --link 的使用

如上,我创建的容器 yerbe-api 链接到了 mysql 容器,别名为 mariadb,接着,在 yerbe-api 容器里可以通过 host: mariadb 端口 3306 以及 用户名密码链接数据库了,前提是 mysql 容器创建了用户、数据库并合理的授权了,比如:

grant all privileges on yerbe_web.* to 'yerbe'@'172.27.1.10' identified by '123456';

以后就可以通过 host: mariadb、用户名 yerbe  密码  123456 以及 databases yerbe_web 来连接数据库了。

full-stack-trip

Share
Published by
full-stack-trip
Tags: docker

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago