今回は使い捨てるため、--rm をつけて、container が停止したら削除するようにする
環境
- macOS: v10.13.6
- Docker: 18.06.1-ce-mac73(26764)
コンテナ作成・起動
docker container run -d --rm --name some-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 postgres
使用しているオプション | 説明 |
---|---|
--name some-postgres | コンテナ名 |
-d | バックグラウンド実行 |
--rm | 停止したらコンテナ削除する |
-p 5432:5432 | ホストのポート:コンテナのポート |
-e POSTGRES_USER | スーパユーザー名/DBメイン(デフォルトは postgres ) |
-e POSTGRES_PASSWORD | スーパユーザーのパスワード |
postgres | 使用するイメージ |
- 今回は使わない
-
PGDATA
:PostgreSQLのデータの格納先ディレクトリ(デフォルトは/var/lib/postgresql/data) -
POSTGRES_DB
:初回起動時に作成するデータベース名を設定できるが省略するとPOSTGRES_USERと同じになるのでたいてい省略する
-
ログイン
docker container exec -it some-postgres bash
# コンテナ動作確認
root@0d4e110375f0:/# psql --version
psql (PostgreSQL) 11.0 (Debian 11.0-1.pgdg90+2)
root@0d4e110375f0:/# psql -U postgres
psql (11.0 (Debian 11.0-1.pgdg90+2))
Type "help" for help.
postgres=#
停止 (--rm で作成したのでコンテナ削除も兼)
docker container stop some-postgres
ホストからの接続確認
- ホストOSがMacで Homebrew インストール済みの場合
# psqlのためpostgresqlをインストール
brew install postgresql
# psql が必要なだけなので(自動起動も)停止
brew services stop postgresql
# 停止したことを確認
brew services list
# 接続できることを確認する
psql -h localhost -U postgres