DockerからDockerを構成する方法!


dockerで動作する場合は、すべてのアクションを入力するのは良い扱いではありません.時々、それは悪夢になることがあります.なぜなら、誤植がプロセスを中断し、すべてのコマンドを再実行するからです.
今日、私たちはどのようにDockerの構成は、Dockerを簡単にし、楽しい経験をすることについて学びます.
記事の範囲は
  • Dockerがなぜ構成するか?
  • Dockerの作成方法YMLファイル.
  • 自動化するイメージと環境変数の構築.
  • Dockerを構成し、通信する.(ポート、ボリューム、ネットワークの追加)
  • コンテナログとシェルによるトラブルシューティング
  • このアイデアはDockerコマンドラインからDockerコマンドを使用してDockerコマンドを使用してすべてのコマンド、および日常のタスクを移動することです.YMLファイルと当社の生産性をスピードアップします.
    あなたがDockerについての考えを持っていないならば

    Dockerがなぜ構成するか?
    我々のアプリケーションの大部分は、現在単独で遊びません.彼らはデータベース、ストレージサービス、セキュリティAPI、およびそれらの周りのより多くのサービスを必要とし、それぞれがコンテナになる必要があります.
    Dockerの作成は私たちの生活を簡素化し、単一のコマンドで実行を実行し、イメージを構築するのに役立ち、我々のコンテナを調整します.
    要するに、Dockerの作成は、アプリケーションのライフサイクルの世話をすると、開始、停止のような私たちのコンテナのアクションを管理し、ステータスを取得し、ネットワークを公開し、通信を簡素化することができます.
    Dockerを構成するコマンドは3つの重要なフラグが付属しています.
  • docker-compose build Dockerの構成に定義されたコンテナをビルドします.京大理
  • docker-compose up コンテナとネットワークを起動します.
  • docker-compose down コンテナとネットワークを止めてください.
  • すべての魔法は、Dockerの構成を使用して発生します.YMLファイルの背後にあるので、私たちはそれについて話しましょう.

    Dockerはファイルを作成する
    DockerFileのように、Dockerを使用します.YML、そしてそれは2つの主要な重要な領域を持ちます.そして、それは我々のコンテナ定義を表すスキーマ支持されたサービスとサービスを定義します.
    サービスはコンテナを定義する場所ですこれは、画像、ビルド、環境、ボリューム、ポート、ネットワークなどのような追加のプロパティをサポートしています.

    In YML files, the indentation matters and always use space.


    我々は、Dockerの方法とDockerを構成している最初に入力し、2番目の設定は、Dockerの構成に宣言します.京大理
    Dockerを作成します.つのプロパティーを持つYMLファイル.
  • バージョン:我々は使用するスキーマのバージョンをDockerを教えてください.
  • サービスは"web "コンテナを宣言します.また、イメージプロパティを追加し、nginxに設定します.
  • version: '3.0'
    services:
      web:
        image: nginx
    
    ファイルを保存し、コマンドを実行しますdocker-compose up ,
    コンテナーを構築、作成、および開始するには.
    dany@dany:~/Documents/docker-learn$ docker-compose up
    Building with the native build. Learn about the native build in Compose here: https://docs.docker.com/go/compose-native-build/
    Creating docker-learn_web_1 ... done
    Attaching to docker-learn_web_1
    web_1  | Starting up HTTP-server, serving ./
    
    Dockerの構成は既に終了し、出力を端末に表示します.

    Dockerはコマンドを作成する
    我々は、開始、停止、および当社のコンテナを監視するようなオプションがあります.
    Dockerは以下のパラメータを受け入れます.start : 端末に接続せずにコンテナを起動します.
    docker-compose start
    
    start -d : 特定のコンテナーを起動し、- Dフラグで端末から切り離します.
    docker-compose up  -d web
    
    --no-deps container name : 依存関係なく特定のコンテナを起動します.
    docker-compose up --no-deps web
    
    ps : アクティブコンテナを表示します.
    docker-compose ps 
    
    stop : コンテナを停止します.
    docker-compose stop
    

    ポート
    次の手順では、Dockerの方法でコンテナにアクセスするポートを宣言します.
     docker run -p 80:80 imagename
    
    Dockerでは、ポートに追加のプロパティを追加します.
      ports:
        - "3000:3000"
    


    我々のマシンのコンテナからデータを保存するには、ボリュームを使用します.
    docker run -v $(PWD):/var/www imagename
    
    Dockerで、ホストディレクトリとコンテナーパスで新しいプロパティボリュームを追加します.
      volumes:
       -./logs: var/www/logs
    

    環境変数
    Docker方法で環境変数を宣言するには、次のように入力します.
    docker run --env NODE_ENV=production imagename
    
    Dockerでは、すべての変数の一覧を追加したプロパティ環境を追加します.
      enviroment:
        - NODE_ENV=production
        - APP_VERSION: 1.0
    
    または負荷を指定します.
    env_file 
      - ./settings.env
      - ./app.env
    

    ブリッジネットワーク
    我々は、コンテナ間の通信を許可するブリッジネットワークを使用してアプリケーション、API、またはデータベースを通信するためにネットワークが必要です.
    ドッカーウェイはタイプです.
    docker network create --driver bridge network name
    
    Dockerで新しいキーを作成するnetworks ドライバの名前と型を指定します.
    networks:
          danynetwork:
            driver: bridge
    

    環境変数の使用
    大部分のシナリオでは、我々は生産と発展のために容器を持ちたいです.環境変数を使用してそれぞれの環境に対してビルドするDockerの構成について説明します.
    まず、環境変数をLinuxやMacのマシンにエクスポートします.
    export WEB_ENV=dev
    export WEB_ENV= prod
    
    PowerShellでWindowsマシンで.
    $env:WEB_ENV = "dev"
    
    次のステップは、名前のWebで2つのDockerファイルを作成することです.dev . dockerfileとweb.dockerfile
    Webdev . dockerfileは開発モードでHTTPサーバを使用します.
    FROM        node:alpine
    LABEL       author=" Dany  Paredes"
    WORKDIR     /var/www
    COPY        src/index.html  .
    RUN         npm  install  http-server  -g
    EXPOSE      8080
    ENTRYPOINT  ["http-server"]
    
    Webを使用します.
    FROM        nginx
    LABEL       author="Production"
    WORKDIR     /usr/share/nginx/HTML
    COPY        src/index.html  .
    EXPOSE      80
    
    Dockerの作成を編集します.サービスにYMLを使用すると、イメージキーを削除し、コンテキスト、ファイル、およびDockerFile名を指示するビルドオプションを追加します.
    Dockerファイル名は、環境変数のような補間を使用しますweb.${WEB_ENV}.dockerfile 例えば環境変数の値を取得します.
    version: '3.0'
    services:
      web:
        build:
          context: .
          dockerfile: web.${WEB_ENV}.dockerfile
    networks:
      danynetwork:
        driver: bridge
    
    Dockerの作成は、環境変数WebCount ENVをビルドプロセスで受け取り、値NGinxに代入します{ WebRange env }環境変数を持つDockerfile.
    ターミナルランへdocker-compose build , これは、dev環境を使用してコンテナを作成します.
    docker-compose build
    Sending build context to Docker daemon  47.62kB
    Successfully built f68d5cded665
    Successfully tagged docker-learn_web:latest
    
    
    我々は環境変数を出版プロセスでDockerハブに使用することができます.

    DockerHubに画像を公開する
    DockerHubに画像を公開するのを覚えているなら、DockerHubのユーザ名とイメージを教えてください.
    Dockerのやり方で
    docker push dockerhubusername/imagename
    
    Dockerを使用すると、DockerHubuserのようなDocker Hubのユーザ名の別の環境変数を宣言します.
    export DOCKERHUBUSER=danywalls
    
    Dockerの作成を編集します.ylとコンテナのプロパティを追加するimage イメージ名の一部として${ DockerHubuser }の値で.
    version: '3.0'
    services:
      web:
        image: ${DOCKERHUBUSER}/web
        build:
          context: .
          dockerfile: web.${WEB_ENV}.dockerfile
        networks:
          - danynetwork
    networks:
      danynetwork:
        driver: bridge
    
    次に、実行しているDockerは押します.これは、自動的にDockerHubに我々のイメージを公開します.
    dany@dany:~/Documents/docker-learn$ docker-compose push
    Pushing web (danywalls/web:latest)...
    The push refers to repository [docker.io/danywalls/web]
    latest: digest: sha256:c4ac44d2e318200eeafb03cdb7e64bc60d0da52092de5bacd69e2e9de10402c0 size: 1783
    

    トロイ抜き容器
    コンテナは時々失敗するか、ログを見る必要があります.
    Dockerの方法では、次のようにコンテナIDを書く必要があります.
    docker logs myid
    
    Dockerの構成では、実行のコンテキストを使用して、すべてのサービスのログを示します.気象研
    docker-compose logs 
    
    または名前を使用して特定のコンテナを選択します.
    docker-compose logs web
    
    そして、ログから最後の5行をお読みください.
    Dockerの作成ログ-- tail = 5

    貝を容器に入れる
    時々、コンテナとリストへのアクセスを取得するか、彼の中をナビゲートする必要があります.
    Dockerウェイで
    docker exec it container id sh 
    
    Dockerの作成方法は、コンテナ名を使用してよく似ています.
    docker-compose exec web sh
    

    概要
    さて、要するに、私たちはあなたのコンテナを調整し、ポート、ボリューム、変数、およびネットワークをDockerの作成ファイルに宣言するのを助けるためにDocker構成を使用する方法を学びました.
    また、ログを読み込み、Dockerの作成コマンドを使用して、コンテナの起動、停止、削除、リストの使用を行います.
    Dockerを使って簡単にタスクを作成し、実行とコンテナに関するコンテキストを持っているので、簡単にタスクを作成できます.
    写真でfrank mckenna on Unsplash