容器簡介:
容器的連線(linking)系統是除了埠對映外,另一種跟容器中應用互動的方式。該系統會在源和接收容器之間建立乙個隧道,接收容器可以看到源容器指定的資訊。
自定義容器命名:
1、連線系統依據容器的名稱來執行。因此,首先需要自定義乙個好記的容器命名。
2、雖然當建立容器的時候,系統缺省會分配乙個名字。
自定義命名容器有2個好處:
1、自定義的命名,比較好記,比如乙個web應用容器我們可以給它起名叫web
2、當要連線其他容器時候,可以作為乙個有用的參考點,比如連線web容器到db容器
案例描述:
建立乙個mysqlserver容器,連個mysqlclient容器,實現容器間的互聯訪問。
1、基礎映象環境搭建
1.1 先建立乙個mysql_server目錄並在其下建立乙個dockerfile檔案,內容如下
from ubuntu
maintainer zhouwenhua "[email protected]"
run apt-get update
run apt-get -yq install mysql-server-5.6
run /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 3306
cmd ["/usr/bin/mysqld_safe"]
然後根據dockerfile來建立image
docker build -t mysql .
1.2 建立乙個mysql_client目錄並在其下建立乙個dockerfile檔案,內容如下
from ubuntu
maintainer zhouwenhua "[email protected]"
run apt-get update
run apt-get -yq install mysql-server-5.6
然後根據dockerfile來建立image
docker build -t mysql_client .
1.3 建立完image之後,我們可以使用下面命令來檢視結果
$ docker images | grep mysql
mysql_client latest 42a8eaeb7925 34 minutes ago 543.7 mb
mysql latest 3662991f7bc3 24 hours ago 472.6 mb
2. 第二步是根據image來建立我們的應用場景
2.1 首先建立提供mysql資料庫服務的容器
docker run --name=mysql_server -d -p mysql
2.2 分別建立兩個使用上一步建立出來mysql資料庫服務的容器
第乙個應用容器
docker run --name=mysql_client1 --link=mysql_server:db -t -i mysql_client mysql -h db -u root -pzhou
第二個應用容器
docker run --name=mysql_client2 --link=mysql_server:db -t -i mysql_client mysql -h db -u root -pzhou
這裡需要特別注意一下「–link=mysql_server:db」,這個引數就是告訴docker容器需要使用「mysql_server」容器,並將其別名命名為db,這樣在這兩個容器裡就可以使用「db」來作為提供mysql資料庫服務的機器名。所以在最後啟動引數裡我們使用的是「/usr/bin/mysql -h db -u root -pletmein」來連線mysql資料庫的。
2.3 執行完上面兩個命令,我們就會在建立了兩個mysql的client的容器,此時我們可以使用下面命令來檢視狀態
container id image command created status ports names
30bd95641a4f mysql_client "mysql -h db -u root " 13 minutes ago up 13 minutes mysql_client2
3d5b4757fe99 mysql_client "mysql -h db -u root " 17 minutes ago up 16 minutes mysql_client1
27e6aa1485cf mysql "/run.sh" 24 minutes ago up 24 minutes 0.0.0.0:32773->3306/tcp mysql_server
這裡注意一下最後一行,也就是mysql_server容器的「names」列的內容「mysql_client/db,mysql_client2/db,mysql_server」,這就說明mysql_client1和mysql_client2都和db建立的連線。--此處結果與實際不相符,有待版本間差異考證。
多表連線 案例講解
多表連線,案例講解 1.查詢部門編號 3的女神的男朋友資訊,如果有則列出詳情,如果沒有,用null填充 外連線 select b.name b.id bo.from beauty b left outer join boys bo on b.boyfriend id bo.id where b.id...
SqlServer資料庫遠端連線案例教程
在sqlserver服務端電腦開啟sqlserver managerment studio管理工具,首先通過windows身份驗證登入sqlserver 登入成功之後,右鍵開啟屬性,在安全性選項卡勾選sql server和windows身份認證模式,在連線選項卡勾選允許遠端連線到此伺服器,如下圖 然...
理解Docker容器連線實現容器間通訊
容器連線 link 系統是除了埠對映外,另一種跟容器中應用互動的方式。其會在源容器 db 與接收容器 web 之間穿件乙個隧道,接收容器可以看到源容器指定的資訊。其實乙個可以將具體的容器連線到一起來進行通訊的抽象層。容器的命名 docker的連線系統會根據容器的名稱來進行連線。name用來自定義名稱...