Docker のコンテナからホストOS に接続

2020/08/17

Docker のコンテナからホストOSに接続するのに「host.docker.internal」というホストが用意されています。

Docker for Mac Stable release notes

Docker For Mac での機能なので、Linux ベースでは利用できないかと思います。

Dockerコンテナから Mac の MySQL に接続

mysql コマンドで Dockerコンテナから、ホストOS(Mac)の MySQL に接続する場合、ホスト名に「host.docker.internal」を指定します。


# mysql -u ユーザ名 -h host.docker.internal -p
mysql>

よって、開発のプログラム上でも「host.docker.internal」をホストで設定して利用できます。

Dockerコンテナから PHP で MySQL の PDO接続


$db_name = 'DB名';
$user_name = 'ユーザ名';
$password = 'パスワード';
$host = 'host.docker.internal';
$dsn = "mysql:dbname={$db_name};host={$host}";

try {
    $pdo = new PDO($dsn, $user_name, $password);
    echo "接続成功" . PHP_EOL;
} catch (PDOException $e) {
    echo "接続失敗: " . $e->getMessage() . PHP_EOL;
    exit;
}

Dockerコンテナから Mac の PostgreSQL に接続


# psql -l -h host.docker.internal -U ユーザ名
                         List of databases
   Name    | Owner | Encoding | Collate | Ctype | Access privileges 
-----------+-------+----------+---------+-------+-------------------
 postgres  | yoo   | UTF8     | C       | C     | 
 sample    | yoo   | UTF8     | C       | C     | 
 template0 | yoo   | UTF8     | C       | C     | =c/yoo           +
           |       |          |         |       | yoo=CTc/yoo
 template1 | yoo   | UTF8     | C       | C     | =c/yoo           +
           |       |          |         |       | yoo=CTc/yoo
git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel7 リリース
v-html でHTML表示する
Laravel で Nuxt.js を使ってみる(Docker環境)
Laravel で Vue コンポーネントを使う
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Mac で Laradock の構築