日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker使用Link在容器之间建立连接

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker使用Link在容器之间建立连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:Docker使用Link在容器之間建立連接

?

在使用Docker的時候我們會常常碰到這么一種應用,就是我需要兩個或多個容器,其中某些容器需要使用另外一些容器提供的服務。比如這么一種情況:我們需要一個容器來提供MySQL的數據庫服務,而另外兩個容器作為客戶端來連接使用mysql數據庫服務。下面我們就來看看docker是怎樣通過Link來實現這種功能的。

?

1. 這里我們首先創建兩個容器image,一個用來模擬mysql數據庫,另外一個使用mysql的client來模擬一些使用mysql服務的應用,這種應用可以是任何PHP,Python,Java等的應用。

?

1.1 先創建一個mysql_server目錄并在其下創建一個Dockerfile文件,內容如下

[plain]?view plain?copy ?print?

  • FROM?centos:centos6??
  • MAINTAINER?Fanbin?Kong?"kongxx@hotmail.com"??
  • ???
  • RUN?yum?install?-y?mysql-server?mysql??
  • ???
  • 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

    ?

    ?

    [plain]?view plain?copy ?print?

  • sudo?docker?build?-t?kongxx/mysql_server?.??
  • ?

    ?

    ?

    1.2 創建一個mysql_client目錄并在其下創建一個Dockerfile文件,內容如下

    ?

    [plain]?view plain?copy ?print?

  • FROM?centos:centos6??
  • MAINTAINER?Fanbin?Kong?"kongxx@hotmail.com"??
  • ???
  • RUN?yum?install?-y?mysql??

  • 然后根據Dockerfile來創建image

    ?

    ?

    [plain]?view plain?copy ?print?

  • sudo?docker?build?-t?kongxx/mysql_client?.??

  • 1.3 創建完image之后,我們可以使用下面命令來查看結果

    ?

    ?

    [plain]?view plain?copy ?print?

  • $?sudo?docker?images?|?grep?kongxx??
  • kongxx/mysql_client???latest????????????????aa31f22f6fc5????????2?hours?ago?????????303.7?MB??
  • kongxx/mysql_server???latest????????????????3b9b08c8dda4????????2?hours?ago?????????353.3?MB??
  • ?

    ?

    ?

    2. 第二步是根據image來創建我們的應用場景

    ?

    2.1 首先創建提供mysql數據庫服務的容器

    ?

    [plain]?view plain?copy ?print?

  • sudo?docker?run?--name=mysql_server?-d?-P?kongxx/mysql_server??

  • 2.2 分別創建兩個使用上一步創建出來mysql數據庫服務的容器

    ?

    第一個應用容器

    ?

    [plain]?view plain?copy ?print?

  • sudo?docker?run?--name=mysql_client1?--link=mysql_server:db?-t?-i?kongxx/mysql_client?/usr/bin/mysql?-h?db?-u?root?-pletmein??
  • ?

    ?

    ?

    第二個應用容器

    ?

    [plain]?view plain?copy ?print?

  • sudo?docker?run?--name=mysql_client2?--link=mysql_server:db?-t?-i?kongxx/mysql_client?/usr/bin/mysql?-h?db?-u?root?-pletmein??
  • ?

    ?

    ?

    這里需要特別注意一下“–link=mysql_server:db”,這個參數就是告訴Docker容器需要使用“mysql_server”容器,并將其別名命名為db,這樣在這兩個容器里就可以使用“db”來作為提供mysql數據庫服務的機器名。所以在最后啟動參數里我們使用的是“/usr/bin/mysql -h db -u root -pletmein”來連接mysql數據庫的。

    2.3 運行完上面兩個命令,我們就會在創建了兩個mysql的client的容器,此時我們可以使用下面命令來查看狀態

    [plain]?view plain?copy ?print?

  • sudo?docker?ps??
  • CONTAINER?ID????????IMAGE????????????????????????COMMAND????????????????CREATED?????????????STATUS??????????????PORTS?????????????????????NAMES??
  • ac0c76c627c0????????kongxx/mysql_client:latest???/usr/bin/mysql?-h?db???10?seconds?ago??????Up?9?seconds??????????????????????????????????mysql_client2??
  • 763c4825722d????????kongxx/mysql_client:latest???/usr/bin/mysql?-h?db???41?minutes?ago??????Up?40?minutes?????????????????????????????????mysql_client??
  • 32f7839f7e9d????????kongxx/mysql_server:latest???/usr/bin/mysqld_safe???About?an?hour?ago???Up?About?an?hour????0.0.0.0:49153->3306/tcp???mysql_client1/db,mysql_client2/db,mysql_server??
  • ?

    這里注意一下最后一行,也就是mysql_server容器的“NAMES”列的內容“mysql_client/db,mysql_client2/db,mysql_server”,這就說明mysql_client1和mysql_client2都和db建立的連接。

    ?

    總結

    以上是生活随笔為你收集整理的Docker使用Link在容器之间建立连接的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。