ホームページ  >  記事  >  運用・保守  >  Docker の基本構成ファイル構造とインストール ツール (詳細な例)

Docker の基本構成ファイル構造とインストール ツール (詳細な例)

WBOY
WBOY転載
2022-02-07 17:39:404594ブラウズ

この記事では、compose ファイル構造や docker compose ツールのインストールに関する知識など、docker での compose に関する知識を提供します。

Docker の基本構成ファイル構造とインストール ツール (詳細な例)

docker compose とは何ですか?

Docker compose は、さまざまなコンテナーで実行されているさまざまなサーバーをオーケストレーションして統合するコンテナー オーケストレーション機能です。

は、ほとんどのコンテナを均一に管理するために使用できます。ネットワーク、ポート、マウントなどが含まれますが、これらに限定されません。コンテナのクラスタリングを実装するために使用できます。Compose は、関連する一連の操作を実装するためにも使用できます。オペレーションはコンテナを管理する機能です

1. compose ファイル構造

1. yml ファイル

compose におけるファイル構造は、通常、次の構造を指します。 yml ファイル. では、yml ファイルとは何でしょうか?

yml ファイルは、キーと値のペア形式のファイルです。

yml ファイルは形式に非常に敏感です。次の点に注意する必要があります:

  1. スペースのインデントのみを認識し、タブのインデント形式は認識しません。 key
  2. 通常、
  3. 文字の先頭で 2 つのスペースをインデントし、その後、コロン、カンマ、水平バー、その他の文字を含む (ただしこれらに限定されない) 1 つのスペースをインデントします。文字はスペース 1 つでインデントする必要があります。
  4. コメントに # の使用をサポートします。
  5. 特殊文字が含まれる場合は、一重引用符で囲む必要があります。
  6. ブール値引用符で囲む必要があります

例:

  house:
    family:
      name: Doe
      parents: 
        - John
        - Jane
      children: 
        - Paul
        - Mark
        - Simone
    address: 
      number: 34
      street: Main Street
      city: Nowheretown
      zipcode: 1234

yml ファイル形式 たとえば、上記では 1 レベルの対応が必要で、異なるレベルの間には 2 つのスペースがあります。

注: キーに 1 つのレベルで複数の値がある場合は、次のレベルで使用できます。また、短い水平バーで始まり、いくつかの終わりの水平バーを書く 2 つの空のスペースもあります。

2. Compose 設定で一般的に使用されるフィールド

#フィールド説明build dockerfile centtextDockerfile ファイル名を指定してイメージ コンテキストのパスを構築しますimages指定しますイメージcommandデフォルトのコマンドを上書きしてコマンドを実行します#コンテナ名指定しますコンテナ名は一意であるため、コンテナ名。カスタム名を指定した場合、スケールを作成することはできませんdeployデプロイメントおよび実行サービスに関連する構成を指定します。また、Swarm モードでのみ使用できます環境環境変数の追加ネットワークネットワークに参加ports -p と同じようにコンテナ ポートを公開しますが、ポート番号は 60 より大きい必要がありますvolumtsホスト パスまたはコマンド ボリュームrestart再起動戦略、デフォルトはいいえ、常に、障害時、停止しない限りhostnameコンテナホスト名

build: ミラー構築時の定義方法

dockerfile: dockerfile を使用して構築されるメソッド

context: サービス docerfile ファイルのパス

images:使用するイメージ名、例: イメージ: イメージ名、注意: 後ろにスペースがあります

コマンド: ステートメントを実行します

コンテナ名: コンテナーの名前は一意であるため、コンテナーの名前を指定するために使用されます。カスタム名を指定すると、スケーリング (レプリカ セットの設定) はできません

#レプリカ セット: イメージを複数のコンテナーに作成します。これらの複数のコンテナーの実行環境などはまったく同じです。コンテナ アーキテクチャ内のコンテナが停止した場合、同一のコンテナを直接起動してレプリカ セットの数を維持できる、これがレプリカ セットの概念であり、K8s の核心でもあります。マイクロサービスの速度を向上させ、災害復旧を改善し、高い同時実行パフォーマンスを実現できます。

deploy: これはコントローラーであり、k8s ではレプリカ セットを制御および管理するプラグインです。

restart: 再起動戦略。デフォルトではシャットダウン後に起動しません。常に起動すると、手動シャットダウンか非手動シャットダウンかに関係なく、閉じたコンテナが自動的に起動します。クローズされたステータスのみをプルします。コンテナは、失敗時にゼロ以外のリターン コードを持つコンテナのみを起動します。

3. Compose の外部共通コマンド

フィールド説明buildpsupexec##scaleレプリカセットの数に相当するサーバーの起動数を指定しますtopコンテナ プロセス、docker compose によって制御されるプロセスによって開始されたすべてのコンテナを表示しますログ表示コンテナの出力情報downコンテナ、ネットワーク、データボリューム、イメージの削除stop/start/ restartstop /コンテナ サービスの開始/再起動

docker compose基本使用格式:docker-compose [options] [COMMAND] [ARGS…]

docker-compose选项

  1. –verbose:输出更多调试信息
  2. –version:打印版本并退出
  3. -f /–file FILE:使用特定的compose模板文件,默认为docker-compose.yml
  4. -p /–project-name NAME:指定项目名称,默认使用目录名称

二、安装docker compose工具

1、下载

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

首次连接下载的时候,可能会提示失误或者连接不上,可能是因为网络原因,可以多试几次

2、添加权限

文件在刚下载之后,默认是没有执行权限的,所以需要手动添加执行权限

chmod +x /usr/local/bin/docker-compos

3、运行docker-compose

docker-compose

可以看到,现在已经正常执行了

三、编译镜像

手动创建下面的文件(dockerfile文件之前有的话,直接拉取过来也是可以的)

tree
.
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   ├── nginx-1.12.0.tar.gz
└── wwwroot
    └── index.html

其中yml文件内部

cat docker-compose.yml

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1321:80
      - 1707:443
    networks:
      - cluster
    volumes:
      - ./wwwroot: /usr/local/nginx/html
networks:
  cluster:

nginx的dockerfile文件

cat ./nginx/Dockerfile

FROM centos:7
ADD nginx-1.12.0.tar.gz /tmp
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make &> /dev/null \
    && useradd -M -s /sbin/nologin nginx \
    && cd /tmp/nginx-1.12.0/ \
    && ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-http_stub_status_module &> /dev/null \
    && make &> /dev/null \
    && make install &> /dev/null
VOLUME ["/usr/local/nginx/html"]
EXPOSE 80
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

index.html文件中就是自己配置的网页信息,就不多做介绍了

确定之后,编译

docker-compose -f docker-compose.yml up -d

查看运行结果

docker ps -a

CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS                      PORTS                                                                        NAMES
da38007f09ab   dockercompose_nginx   "/usr/local/nginx/sb…"   About a minute ago   Up About a minute           0.0.0.0:666->80/tcp, :::666->80/tcp, 0.0.0.0:667->443/tcp, :::667->443/tcp   dockercompose_nginx_1
#可以看到,这个端口信息就是我们在yml文件中设置的端口信息,直接在这个生效了

docker images

REPOSITORY                TAG       IMAGE ID       CREATED         SIZE
dockercompose_nginx       latest    b1e4b9dfa72d   3 minutes ago   478MB

访问网址端口,查看该网站页面

curl 192.168.75.51:666
hello
#显示结果
cat ./wwwroot/index.html
hello

推荐学习:《docker视频教程

イメージ情報の再構築
現在 docker compose によって制御されているコンテナを一覧表示します
コンテナを作成して開始します
コンテナ内でコマンドを実行します

以上がDocker の基本構成ファイル構造とインストール ツール (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。