Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What is going on with this article?
@megmogmog1965

Docker for Windows で postgres コンテナの Volume マウントを安全にする

More than 3 years have passed since last update.

はじめに

Docker でコンテナを使ってDBを動かすとき、コンテナを落としてもデータが消えないよう、多くの人はDBのデータディレクトリをホスト側にマウントすると思います。

本記事は PostgreSQL についてですが、他DBでも同様だと思われます。

BAD: ホストOSのDirectoryをマウントする

一番Basicな方法だと思いますが、Windowsですと Permission denied だとか、書き込み時に initdb: could not fsync file Errorが頻発します。頑張ってLinuxの仮想FileSystemをWindows上で再現しているので折り合いが悪い様子。

### (a) コマンド直打ちの場合
$ docker run -d -v ./data:/var/lib/postgresql/data postgres:9.6.3-alpine
### (b) docker-compose.yml の場合
version: '2'
services:
  db:
    image: postgres:9.6.3-alpine
    volumes:
      - ./data:/var/lib/postgresql/data

Windows10 (Docker for Windows) の場合は↓も必要。

sharedrives.png

GOOD: Named Volume をマウントする

DockerNamed Volume にマウントする方法で安定しました。

### (a) コマンド直打ちの場合
$ docker volume create dbdata
dbdata

$ docker volume ls
DRIVER              VOLUME NAME
local               dbdata

$ docker run -d -v dbdata:/var/lib/postgresql/data postgres:9.6.3-alpine
### (b) docker-compose.yml の場合
version: '2'
services:
  db:
    image: postgres:9.6.3-alpine
    volumes:
      - dbdata:/var/lib/postgresql/data

volumes:
  dbdata:

データを消したい時はこうします。

$ docker volume ls
DRIVER              VOLUME NAME
local               dbdata
local               dockerpostgres_dbdata   # <-- docker-compose で作った方. 勝手にPrefixが付く

$ docker volume rm dbdata
dbdata

参考

今回も Stack Overflow 先生のおかげで助かりました。

31
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
31
Help us understand the problem. What is going on with this article?