GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Docker Compose UpvsStartおよびDownvsStop:違いの説明

Docker Composeを初めて使用し、さまざまなチュートリアルに従って学習する場合は、docker-compose up、docker-compose up -d、docker-compose stop、docker-compose down、さらにはdockerなどの用語に出くわす可能性があります。 -停止を作成します。

これらの用語は、Dockerの初心者を混乱させるのに十分です。これは、これらのdocker-composeコマンドの多くが非常によく似た方法で動作するように見えるためです。

実際、最初は docker-compose upの違いをすぐに見分けるのは特に難しい場合があります。 およびdocker-composestart

Docker Composeを介してコンテナーを起動することは、upコマンドを実行することと同じではありませんか?正確ではありません。

すべてを詳しく説明させてください。

Dockerの違いComposeup、up -d、stop、start、down、down -v

>

これらのコマンドの機能:

Docker作成コマンド Webアプリサービスをデプロイし、Dockerイメージから新しいコンテナーを作成し、ネットワーク、ボリューム、およびDockerComposeファイル内で指定されたすべての構成をセットアップします。 -dを指定する場合 、これは、端末の制御を提供することにより、バックグラウンドで実行されるように、デタッチモードで実行するように指示することを意味します(以下のいくつかの例ですぐに説明します)。

Docker作成停止コマンド DockerCompose構成に関連付けられているすべてのサービスを停止します。コンテナまたは関連する内部ボリュームまたはネットワークは削除されません。

Docker作成開始コマンド 同じDockerComposeファイルに基づいて停止した構成で指定されたとおりに停止したサービスを開始します。

Docker作成コマンド DockerCompose構成に関連付けられているすべてのサービスを停止します。 stopとは異なり、サービスに関連付けられているコンテナと内部ネットワークもすべて削除されます。ただし、内部で指定されたボリュームではありません。これを行うには、さらに -vを指定する必要があります downの後にフラグを立てる コマンド。

これは、Dockerの実行と開始コマンドに似ていますよね?

Docker Run vs Start vs Create:違いの説明docker初心者にとって、docker start、docker run、dockercreateなどの用語は混乱を招く可能性があります。この記事では、例との違いについて説明します。 LinuxハンドブックAbhishekPrakash

十分な理論ですが、ここでいくつかの実践的な例を見てみましょう。

実践的な例との違いを理解する

例に従う場合は、DockerとDockerComposeインストーラーが既に存在することを確認してください。

Linuxサーバーで実行されているDockerComposeベースのGhostブログセットアップを使用しているとしましょう。

すべてのセルフホストチュートリアルでは、ほとんどの場合 -dを使用する傾向があります サーバーに構成をデプロイするたびにフラグを立てます。しかし、指定しないとどうなりますか?

[email protected]:~/ghost$ docker-compose up
Pulling ghost (ghost:4.20.3)...
4.20.3: Pulling from library/ghost
b380bbd43752: Pull complete
8d36a6ce056a: Pull complete
f75fe68b8e22: Pull complete
44f6d143e12f: Pull complete
0ebe8063dedd: Pull complete
f984e0e37c5a: Pull complete
ce2320facea8: Pull complete
898c3dbc1716: Pull complete
45c37559f24a: Pull complete
Digest: sha256:b332684117bfa05329298712ad0ffcfc4a83ce6314332e073978f46be3c05e81
Status: Downloaded newer image for ghost:4.20.3
Creating ghost_ghost_1 ... done
Attaching to ghost_ghost_1
ghost_1  | [2021-10-26 07:02:05] INFO Ghost is running in production...
ghost_1  | [2021-10-26 07:02:05] INFO Your site is now available on https://ghost.domain.com/
ghost_1  | [2021-10-26 07:02:05] INFO Ctrl+C to shut down
ghost_1  | [2021-10-26 07:02:05] INFO Ghost server started in 0.369s
ghost_1  | [2021-10-26 07:02:06] WARN Database state requires initialisation.
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: posts
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: posts_meta
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: users
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: oauth
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: posts_authors
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: roles
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: roles_users
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: permissions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: permissions_users
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: permissions_roles
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: settings
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: tags
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: posts_tags
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: invites
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: brute
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: sessions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: integrations
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: webhooks
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: api_keys
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: mobiledoc_revisions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: products
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: offers
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: benefits
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: products_benefits
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_products
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_payment_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_login_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_email_change_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_status_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_product_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_paid_subscription_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: labels
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_labels
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_stripe_customers
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_stripe_customers_subscriptions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: offer_redemptions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: members_subscribe_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: stripe_products
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: stripe_prices
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: actions
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: emails
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: email_batches
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: email_recipients
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: tokens
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: snippets
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: temp_member_analytic_events
ghost_1  | [2021-10-26 07:02:06] INFO Creating table: custom_theme_settings
ghost_1  | [2021-10-26 07:02:06] INFO Model: Product
ghost_1  | [2021-10-26 07:02:06] INFO Model: Tag
ghost_1  | [2021-10-26 07:02:06] INFO Model: Role
ghost_1  | [2021-10-26 07:02:06] INFO Model: Permission
ghost_1  | [2021-10-26 07:02:07] INFO Model: User
ghost_1  | [2021-10-26 07:02:07] INFO Model: Post
ghost_1  | [2021-10-26 07:02:08] INFO Model: Integration
ghost_1  | [2021-10-26 07:02:08] INFO Relation: Role to Permission
ghost_1  | [2021-10-26 07:02:08] INFO Relation: Post to Tag
ghost_1  | [2021-10-26 07:02:08] INFO Relation: User to Role
ghost_1  | [2021-10-26 07:02:08] INFO Database is in a ready state.
ghost_1  | [2021-10-26 07:02:08] INFO Ghost database ready in 3.309s
ghost_1  | [2021-10-26 07:02:09] INFO Ghost booted in 4.457s
ghost_1  | [2021-10-26 07:02:09] INFO Adding offloaded job to the queue
ghost_1  | [2021-10-26 07:02:09] INFO Scheduling job update-check at 49 27 22 * * *. Next run on: Tue Oct 26 2021 22:27:49 GMT+0000 (Coordinated Universal Time)
ghost_1  | [2021-10-26 07:02:51] INFO "GET /favicon.ico" 200 7ms
ghost_1  | [2021-10-26 07:02:51] INFO "GET /" 200 605ms
ghost_1  | [2021-10-26 07:02:51] INFO "GET /assets/built/screen.css?v=dde6c321bb" 200 5ms
ghost_1  | [2021-10-26 07:02:51] INFO "GET /assets/built/casper.js?v=dde6c321bb" 200 3ms
ghost_1  | [2021-10-26 07:02:52] INFO "GET /members/api/member/" 204 1ms
ghost_1  | [2021-10-26 07:02:52] INFO "GET /members/api/site/" 200 14ms
ghost_1  | [2021-10-26 07:02:52] INFO "GET /favicon.ico" 200 2ms

ご覧のように? -dなし オプションで、設定を起動しますが、ターミナルプロンプトに戻らずに詳細モードで実行されます。ちょっと助かりましたね。ブラウザを開いてゴーストブログにアクセスすると、すぐにアクセスできるようになります。しかし、Ctrl +Zでコンソールからドロップアウトした場合はどうなりますか?プロセスはバックグラウンドで実行され続け、dockerpsコマンドを使用して確認できます。 :

[email protected]:~/ghost$ docker ps
CONTAINER ID   IMAGE                                    COMMAND                  CREATED         STATUS          PORTS                                                                      NAMES
563a45d049cf   ghost:4.20.3                             "docker-entrypoint.s…"   3 minutes ago   Up 3 minutes    2368/tcp                                                                   ghost_ghost_1

しかし、代わりにCtrl + Cを使用した場合、コンテナーはどうなりますか?プロセスはすぐに殺されます。

[email protected]:~/ghost$ docker ps
CONTAINER ID   IMAGE                                    COMMAND                  CREATED         STATUS          PORTS                                                                      NAMES

-dを使用する場合 オプションは、Ctrl + Zと非常によく似ています。コンソールから切り離され、コンテナをバックグラウンドで実行し続け、新しいコンテナ名( ghost_ghost_1 )も出力します。 この場合)。

これで、 docker-compose downを使用する代わりに 、 docker-compose stopを使用しましょう :

[email protected]:~/ghost$ docker-compose stop
[email protected]:~/ghost$

実行中のコンテナを確認してみましょう。予想通り、何もないはずです:

[email protected]:~/ghost$ docker-compose ps
    Name                   Command               State    Ports
---------------------------------------------------------------
ghost_ghost_1   docker-entrypoint.sh node  ...   Exit 0 

docker psを使用しなかったことに注意してください 。代わりに、 docker-compose psを実行しました Exit 0を確認する別の方法を紹介したかったので 州。これは、コンテナが終了/停止したことを意味します。

docker ps -aでこれを再確認しましょう 。 -a フラグは停止したコンテナも検索します:

[email protected]:~/ghost$ docker ps -a
CONTAINER ID   IMAGE                                    COMMAND                  CREATED         STATUS                     PORTS                                                                      NAMES
44d09e778a91   ghost:4.20.3                             "docker-entrypoint.s…"   8 minutes ago   Exited (0) 7 minutes ago                                                                              ghost_ghost_1

docker-compose startとは それなら?

Docker Compose Startは、 docker-compose downを使用してコンテナーを削除していない場合にのみ意味があります。 (このチュートリアルのコマンドラインではまだ実行していません)。つまり、基本的に、ここでの違いは、停止されて削除されていないコンテナを起動することです。

それでは、まず、 startを使用しましょう upの代わりに 今、何が起こるか見てみましょう:

[email protected]:~/ghost$ docker-compose start
Starting ghost ... done
[email protected]:~/ghost$ 

ここで何が起こるかというと、停止したコンテナが再び開始されます:

[email protected]:~/ghost$ docker-compose ps
    Name                   Command               State    Ports  
-----------------------------------------------------------------
ghost_ghost_1   docker-entrypoint.sh node  ...   Up      2368/tcp

どうぞ。状態はUpになりました Exit 0から戻る 。 dockerで再確認することもできます コマンドのバージョン:

[email protected]:~/ghost$ docker ps
CONTAINER ID   IMAGE                                    COMMAND                  CREATED          STATUS              PORTS                                                                      NAMES
44d09e778a91   ghost:4.20.3                             "docker-entrypoint.s…"   22 minutes ago   Up About a minute   2368/tcp                                                                   ghost_ghost_1

stopを実行してみましょう もう一度コマンドします。

[email protected]:~/ghost$ docker-compose stop
Stopping ghost_ghost_1 ... done

これで、コンテナの状態がわかりました。 upのいずれかを使用できます またはstart コマンドを実行して、再度実行します。 downを実行できることに注意してください この状態でも、サービスを再開せずに:

[email protected]:~/ghost$ docker-compose down
Removing ghost_ghost_1 ... done
Network net is external, skipping

これでコンテナが削除されました。 Docker Composeファイル内に内部ネットワークが指定されている場合、それらも削除されます。 net以降 外部の場合、削除はスキップされます。 -vを指定しましたか さらにフラグを立てると、それも削除されます!

[email protected]:~/ghost$ docker-compose down -v
Stopping ghost_ghost_1 ... done
Removing ghost_ghost_1 ... done
Network net is external, skipping
Volume ghost is external, skipping

データには常に二重の注意を払ってください!

ボーナスのヒント:外部ボリューム(以前に「dockervolume create volume-name」で作成)を使用しているため、「-v」を使用しても削除されないことに注意してください。これは、DockerCompose仕様から作成されたボリュームのみを対象としています。ただし、逆に、「docker volume prune」は、コンテナーで使用されている場合でも外部ボリュームを削除します。Dockerコンテナーのバックアップと復元に関する決定的なガイドクラウドとローカルシステムの両方を利用して、Dockerコンテナーをバックアップおよび復元します。 LinuxハンドブックAvimanyuBandyopadhyay

また、 startは使用できません この段階では。 stopでのみ機能します ped構成:

[email protected]:~/ghost$ docker-compose start
Starting ghost ... failed
ERROR: No containers to start

このような場合は、 docker-compose upを使用する必要があります またはdocker-composeup -d もう一度。

[email protected]:~/ghost$ docker-compose up -d
Creating ghost_ghost_1 ... done
[email protected]:~/ghost$

概要

この記事がupについての理解を深めてくれることを願っています vs up -d vs start stopも同様です vsダウン およびdown-v DockerComposeの場合。

DockerComposeを使用するためのクイックガイドDockerComposeは、マルチコンテナーアプリケーションの管理を簡単にするDockerネイティブツールです。 Linux HandbookHunter Wittenborn

この広範な説明ガイドにより、日常のDocker管理がはるかに簡単になり、今後の負担が大幅に軽減されます。シナリオごとに、特に実稼働システムでは、状況を整理するためにどの特定のコマンドを選択するかは、もちろん、実装方法が異なります。

共有する考え、質問、提案があれば、下にコメントを残してください。


Docker
  1. Docker Composev2の新機能

  2. Dockerの実行と開始と作成:違いの説明

  3. CentOSにDockerComposeをインストールして使用する方法

  1. DockerとDockerComposeをDebian11にインストールする方法

  2. ViとVimのテキストエディタの違いの説明

  3. OSWatcher を開始および停止する方法

  1. Dockerコンテナを一覧表示/開始/停止する方法

  2. Ubuntu18.04にDockerComposeをインストールして使用する方法

  3. CentOS7にDockerComposeをインストールして使用する方法