2016-08-02 11 views
-1

私はDockerを初めて使っていて、Wordpressドッカーの画像を取り込み、いくつかの変更を加え、コミットし、新しい画像をドッカーのクラウドにアップロードしようとしました。Docker ImageにコミットされていませんImage Not Working?

しかし、私がドッカー画像を再起動したとき、以前にコミットされた状態に戻っていません。私は何か間違っているのですか?

  1. docker pull tutum/wordpress:latest
  2. セットアップWordpressのテーマを追加し、いくつかのページドッカコンテナを再起動
  3. docker commit -m "First commit" <CONTAINER ID> foo/bar
  4. docker login
  5. docker push foo/bar:latest
  6. を追加し、pluiginsを追加しました。私がやった場所に戻るdocker pull tutum/wordpress:latest

試したdocker pull foo/bar:latestImage is up to date for foo/bar:latestと言われました。

+0

あなたは何を変更しようとしていますか? – johnharris85

+0

@Jハリステーマをアップロードし、新しいページを追加しました。このドッカーイメージにはmysqlがバンドルされているので、ドッキングコンテナをコミットしてもMySQLに追加された新しいデータは保存されませんか? – Nyxynyx

答えて

0

コンテナはステートレスなので、Dockerイメージを再起動すると基本的にそのイメージの新しいコンテナインスタンスが作成されます。あなたのWordpressコンテナがデータをdata volumeに保存しない限り、あなたが行った変更は、現在のコンテナが破棄された後に消えてしまいます。その画像のDockerfileは公開されていないので、データが保存されている場所を知ることは難しいです。もう1つは、docker commitcommandです。コンテナのボリューム内に格納されているデータは一切コミットしません。

this Wordpress imageを見ると、永続性のためにリンクするMySQLコンテナを指定することができます。

1

あなたは間違ったことはしていません! Dockerの中心的なテナントの1つは、コンテナが不変であると考えられることです。つまり、一度コンテナを作成すると、ライフサイクル全体にわたって同じ状態を維持することを期待する必要があります。 https://hub.docker.com/_/wordpress/

の場合:あなたはTutumのWordpressのファイルを使用して起動のように、あなたが提供する情報から、

このhttps://github.com/tutumcloud/wordpressはまもなく廃止されるために起こっている、とあなたが公式にサポートされているワードプレスのドッキングウィンドウの画像を使用して、より良い運を持っていますが、見えますあなたのローカル環境でこれをハックしようとして、および/またはドッキングウィンドウの画像への変更を保持している、あなたはこのようなものを設定することをお勧めします(当社Dockerfilesの1から取られた):

FROM wordpress:latest 

# installs php zip extensions - used for plugins like duplicator 
RUN docker-php-ext-install zip 

# Copy the existing app into our wp directory 

COPY . /var/www/html 

RUN chown -R www-data:www-data /var/www/html/ 

CMD ["apache2-foreground"] 

イメージに変更を加えたい場合(例えば、セットアッププラグインとテーマ)では、ローカルコンピュータからドッカーコンテナへのマウントポイントを作成する必要があります。マウントポイントを作成するには、コンテナをビルドするときに-vタグを使用してボリュームを設定します。 docker-compose.ymlとしてその

app: 
    build: . 
    volumes: 
    - .:/var/www/html 
    ports: 
    - "80:80" 

保存し、その後、あなたはdocker-compose build/docker-compose upを実行することができます。

これに対する代替アプローチはdocker-composeを使用することです(私はこれをお勧めします、と私たちは、社内の我々の開発のためにそれを使用)あなたのアプリケーションを地面から出す。

変更を加えたら(マウントポイントを変更して)、このイメージにタグを付けることをお勧めします。画像にタグを付けることで、独自のドッカーハブレジストリに一意のユーザーの下にプッシュできるはずです。

この画像には、ローカル環境で加えた変更が画像に直接コピーされるため、すべての変更が含まれます(COPYに注意してください)。

希望すると便利です。

-meoww-

関連する問題