我们在使用Docker的时候,经常可能需要连接到其他的容器,比如:web服务需要连接数据库。按照往常的做法,需要先启动数据库的容器,映射出端口来,然后配置好客户端的容器,再去访问。其实针对这种场景,Docker提供了–link 参数来满足。
这里使用数据库服务器和客户端的例子来介绍下–link的用法。
一 创建容器
这里需要创建MySQL服务端和客户端的容器
MySQL 服务端的Dockerfile:
FROM centos:centos6
MAINTAINER David "xx@xx.com"
RUN yum install -y mysql-server mysql
RUN /etc/init.d/mysqld start
RUN mysql -e "grant all privileges on *.* to 'root'@'%' identified by '1234';"
RUN mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by '1234';"
EXPOSE 3306
CMD ["/usr/bin/mysqld"]MySQL客户端的Dockerfile:
FROM centos:centos6
MAINTAINER David "xx@xx.com"
RUN yum install -y mysql根据Dockerfile来创建images
David@MacBook-Pro-3 ~$ docker build -t hzc/mysql_server /path/mysql_server/DockerfileDavid@MacBook-Pro-3 ~$ docker build -t hzc/mysql_client /path/mysql_client/Dockerfile
image构建执行结束之后,执行
docker image|greo hzc,可以看到:
David@MacBook-Pro-3 ~$ docker image|grep hzc
hzc/mysql_client latest 62cfe52e02bf 2 days ago 289 MB
hzc/mysql_server latest 83c64aba0805 2 days ago 377.9 MB二 启动容器
启动MySQL服务端的容器
David@MacBook-Pro-3 ~$ docker run -d -P --name=mysql_server hzc/mysql_server
David@MacBook-Pro-3 ~$ b5e097fe510d8f258dd82c48a2f6aa4c279e227c4472e42d3e9956ac419ae73c启动MySQL客户端容器
David@MacBook-Pro-3 ~$ docker run --name=mysql_client1 --link=mysql_server:db -i -t hzc/mysql_client mysql -h db -uroot -p1234Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
查看进程
David@MacBook-Pro-3 ~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES










