2016-08-28 4 views
0

storage only containersため移行PostgreSQLの永続ストレージのみ

docker volume create 

の出現により、私はまだdockerfileずに小規模なアプリケーションのための私のマシンではpostgresを実行するための古い方法を使用しています:

私はオールを動かすことができる方法

  1. # MAKE MY DATA STORE 
    STORAGE_DIR=/home/username/mydockerdata/pgdata 
    docker create -v $STORAGE_DIR:/var/lib/postgresql/data --name mypgdata ubuntu true 
    
    # CREATE THE PG 
    docker run --name mypg -e POSTGRES_PASSWORD=password123 -d -p 5432:5432 --volumes-from mypgdata library/postgres:9.5.4 
    
    # RUN IT 
    docker start mypg 
    # docker stop mypg 
    

    私は4つの質問を持っています私のデータをローカルの永続的なコンテナに最新のボリュームに保存するには?

  2. 私のやり方ではいつもいつも気になるようでした。 $ ls -lah $STORAGE_DIR/.. drwx------ 19 999 root 4.0K Aug 28 10:04 pgdata
    私はこれをどうやってやればいいですか?
  3. 私のネットワーキングの外観はここで正しいですか?これは、ドッカーをホストしているマシンでのみ表示されますか、これは私のWiFiネットワーク上のすべてのマシンにも公開されていますか?
  4. 弱いパスワード、標準ポート、デフォルトのユーザー名の他に、個人的な使用のためにこれを行う際に私が気づくべき他のセキュリティ上の懸念がありますか?

答えて

1
  1. 新しいボリュームを作成し、データをコピー。次に、新しいボリューム定義でコンテナを実行します。

    docker volume create --name mypgdata 
    docker run --rm \ 
        -v $STORAGE_DIR:/data \ 
        -v mypgdata:/datanew ubuntu \ 
        sh -c 'tar -C /data -cf - . | tar -C /datanew -xvf -' 
    docker run --rm -v mypgdata:/data ubuntu ls -l /data 
    
  2. 権限は正常です。 UID 999はpostgresユーザーでthe postgres image createsです。

  3. すべてのドッカーホストインターフェイスでポート5432にアクセスできます。 localhostでのみ使用できるようにする場合--port 127.0.0.1:5432:5432

  4. localhostでリッスンすることで、ほとんどのセキュリティ上の問題が緩和され、誰かがドッカーホストにアクセスできるようになります。一般的なセキュリティは、ドットポイントについては広すぎる話題です。

関連する問題