在使用Docker的時(shí)候我們會(huì)常常碰到這么一種應(yīng)用,就是我需要兩個(gè)或多個(gè)容器,其中某些容器需要使用另外一些容器提供的服務(wù)。比如這么一種情況:我們需要一個(gè)容器來提供mysql的數(shù)據(jù)庫(kù)服務(wù),而另外兩個(gè)容器作為客戶端來連接使用mysql數(shù)據(jù)庫(kù)服務(wù)。下面我們就來看看Docker是怎樣通過Link來實(shí)現(xiàn)這種功能的。
1. 這里我們首先創(chuàng)建兩個(gè)容器image,一個(gè)用來模擬mysql數(shù)據(jù)庫(kù),另外一個(gè)使用mysql的client來模擬一些使用mysql服務(wù)的應(yīng)用,這種應(yīng)用可以是任何php,python,java等的應(yīng)用。
1.1 先創(chuàng)建一個(gè)mysql_server目錄并在其下創(chuàng)建一個(gè)Dockerfile文件,內(nèi)容如下
FROM centos:centos6MAINTAINER Fanbin Kong "kongxx@hotmail.com"RUN yum install -y mysql-server mysqlRUN /etc/init.d/mysqld start &&/ mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'letmein';"&&/ mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'letmein';"&&/ mysql -u root -pletmein -e "show databases;"EXPOSE 3306CMD ["/usr/bin/mysqld_safe"]
然后根據(jù)Dockerfile來創(chuàng)建image
sudo docker build -t kongxx/mysql_server .
1.2 創(chuàng)建一個(gè)mysql_client目錄并在其下創(chuàng)建一個(gè)Dockerfile文件,內(nèi)容如下
FROM centos:centos6MAINTAINER Fanbin Kong "kongxx@hotmail.com"RUN yum install -y mysql
然后根據(jù)Dockerfile來創(chuàng)建image
sudo docker build -t kongxx/mysql_client .
1.3 創(chuàng)建完image之后,我們可以使用下面命令來查看結(jié)果
$ sudo docker images | grep kongxxkongxx/mysql_client latest aa31f22f6fc5 2 hours ago 303.7 MBkongxx/mysql_server latest 3b9b08c8dda4 2 hours ago 353.3 MB
2. 第二步是根據(jù)image來創(chuàng)建我們的應(yīng)用場(chǎng)景
2.1 首先創(chuàng)建提供mysql數(shù)據(jù)庫(kù)服務(wù)的容器
sudo docker run --name=mysql_server -d -P kongxx/mysql_server
2.2 分別創(chuàng)建兩個(gè)使用上一步創(chuàng)建出來mysql數(shù)據(jù)庫(kù)服務(wù)的容器
第一個(gè)應(yīng)用容器
復(fù)制代碼 代碼如下:sudo docker run --name=mysql_client1 --link=mysql_server:db -t -i kongxx/mysql_client /usr/bin/mysql -h db -u root -pletmein
第二個(gè)應(yīng)用容器
復(fù)制代碼 代碼如下:sudo docker run --name=mysql_client2 --link=mysql_server:db -t -i kongxx/mysql_client /usr/bin/mysql -h db -u root -pletmein
這里需要特別注意一下“ 主站蜘蛛池模板: 枣阳市| 宾川县| 襄垣县| 琼中| 荥阳市| 梅河口市| 申扎县| 元氏县| 克东县| 沅陵县| 泰顺县| 建昌县| 云龙县| 谷城县| 隆林| 弋阳县| 屏边| 镇赉县| 仁怀市| 布尔津县| 盱眙县| 招远市| 芜湖县| 绵竹市| 泾川县| 龙州县| 眉山市| 禹州市| 南宁市| 德庆县| 永清县| 西昌市| 洛宁县| 威宁| 淮安市| 海盐县| 平度市| 清水河县| 靖安县| 双鸭山市| 阿拉尔市|