2017-12-17 4 views
-1

thisが見つかりましたが、私のためには動作しません。docker-compose画像を別のホストに保存/ロードする

マイ(本当に)シンプルドッキングウィンドウ-compose.yml

version: '3.1' 

services: 

    wordpress: 
    image: wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 

    mysql: 
    image: mysql:5.7 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 

開始:

docker-compose up 

コンテナに何らかの変化(ワードプレスのプラグインやテーマをインストール)作った後。

docker-compose stop 
docker commit main_mysql_1 test-mysql 
docker commit main_wordpress_1 test-wordpress 
docker save test-mysql > test-mysql.tar 
docker save test-wordpress > test-wordpress.tar 

保存別のマシン上の2つのtarファイルとそれらをロード:

docker load -i ./test-mysql.tar 
docker load -i ./test-wordpress.tar 

を今すぐにドッキングウィンドウ-compose.ymlを変更:

version: '3.1' 

services: 

    wordpress: 
    image: test-wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 

    mysql: 
    image: test-mysql 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 

しかし、コンテナが開始されスクラッチからのワードプレス。作業(プラグイン、テーマなど)は何も保存されませんでした。

私の間違いは何ですか?私はこれらの個人的な目的のためにオンラインリポジトリを使いたくない...あなたは2つのホスト間でコンテナを渡すためのよりシンプルで強力な手順を提案できますか?ボリュームと


回避策:すべての

version: '3.1' 

services: 

    wordpress: 
    container_name: GREB_wordpress  
    image: wordpress 
    restart: always 
    ports: 
     - 8080:80 
    environment: 
     WORDPRESS_DB_PASSWORD: example 
    volumes: 
     - ./www:/var/www/html 

    mysql: 
    container_name: GREB_mysql 
    image: mysql:5.7 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: example 
    volumes: 
     - ./mysql_data:/var/lib/mysql 
+0

Iを完全にボリュームを欠場している:) – elbowz

答えて

0

私は私の自己に答える...

まず、ドッキングウィンドウのボリュームはイメージおよび/またはコンテナの一部ではありません。したがって、これらはドッカー画像(docker save)をさらに保存する必要があります。ドッキングウィンドウのファイルシステム、ボリューム、RO/RW層をよりよく理解するために

、 は http://container-solutions.com/understanding-volumes-docker/を読み取ることができます。私たちの画像使用量であれば

図アウト(キーを「ボリューム」を求める):
docker inspect image_name

あなたは、このようなI/O性能としてボリュームを(うまく理解のためのdocumentationをドッキングウィンドウを参照)を使用して異なる利点を持っています。

Aエンド、バックアップボリュームについて:

  • 単にバックアップボリュームは、例えばフォルダtar -cvzPf volume_name_backup.tar.gz /var/lib/docker/volumes/VOLUME_NAME ...そしてあなたもDBダンプすることができます(mysqlのと私の場合のように)デシベル画像の場合には、別のドッキングウィンドウコンテナ
  • を通じて同じ場所
  • Backup, restore, or migrate data volumesにそれらを復元:docker exec mysql_container /usr/bin/mysqldump -u root --password=root --all-databases > mysql_dump_backup.sql