容器間連線

  1. 使用 mariadb image,啟用命名為 mdb的容器,設定mysql用戶root 的密碼為 123qwe。
    [deyu5@kvm3 ~]$ podman run --name mdb -p 3306:3306/tcp -e MYSQL_ROOT_PASSWORD=123qwe -d mariadb
    aeb993fe824c6d26110669e081637ea15bed91dc85338c94fb84439af54046e7
    
  2. 查看啟動的容器埠號,主機的 3306導向到容器mdb的3306。
    [deyu5@kvm3 ~]$ podman port mdb
    3306/tcp -> 0.0.0.0:3306
    
  3. 查詢主機的 IP 為192.168.122.3。
    [deyu5@kvm3 ~]$ ip addr
           .....
    2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:0c:fe:ff brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.3/24 brd 192.168.122.255 scope global noprefixroute ens3
           .....
    
  4. 編輯測試mariadb連線的php檔,連線主機192.168.122.3:3306。
    [deyu5@kvm3 ~]$ vim index.php
    [deyu5@kvm3 ~]$ cat index.php
    <?php
    $dbhost = '192.168.122.3:3306';
    $dbuser = 'root';
    $dbpass = '123qwe';
    echo "Hello PHP\n";
    //phpinfo();
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die(mysql_error().PHP_EOL);
    echo "Connected successfully\n";
    mysqli_close($conn);
    ?>
    
  5. 將測試檔 index.php 複製到容器php網頁容器。
    [deyu5@kvm3 ~]$ podman cp index.php web:/var/www/html/
    
  6. curl 測試連線,成功連線 mdb容器的 mysql 資料庫。
    [deyu5@kvm3 ~]$ curl http://127.0.0.1:8080/index.php
    Hello PHP
    Connected successfully
    
  7. 將測試檔 index.php 的資料庫登入密碼改成 qweqwe。
    [deyu5@kvm3 ~]$ vim index.php
    [deyu5@kvm3 ~]$ grep dbpass index.php
    $dbpass = 'qweqwe';
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass) or die(mysql_error().PHP_EOL);
    
  8. 再將測試檔 index.php 複製到容器php網頁容器。
    [deyu5@kvm3 ~]$ podman cp index.php web:/var/www/html/
    
  9. curl 再測試連線,沒有出現 mysql 資料庫登入成功的訊息。
    [deyu5@kvm3 ~]$ curl http://127.0.0.1:8080/index.php
    Hello PHP