[Docker 4] Docker-compose を使用して、ワンクリックで WordPress プラットフォームをデプロイします

目次

1. YAMLファイル形式と記述上の注意事項(重要)

1. yaml ファイルを使用する際の注意事項:

2. yaml ファイルの基本的なデータ構造:

2.1. 変数の宣言 (スカラー。分割できない単一の値、型: 文字列、整数、ブール型)

2.2. リスト: 順序付けられた要素のコレクションを表します

2.3. キーと値のペアのマッピング:

2.4. 注:

2.5. 引用:

2.6. 文字列の引用符:

二、docker-compose

1。概要

2. docker-compose の一般的なコマンド:

3. docker-compose の 3 つの主要な概念

3. docker-compose をデプロイする

1. Docker-compose のインストール:

2. 作業ディレクトリを作成し、関連する Dockerfile ファイルを書き込みます

3. 構成ファイル docker-compose.yml を書き込みます。

4. 設定ファイルに従ってコンテナを作成して起動します

5. コンテナにログインし、関連する操作を実行します。

4. ホストIPにアクセスし、WordPressをインストールします。


1. YAMLファイル形式と記述上の注意事項(重要)

Yaml ファイル: シリアル化されたデータ形式を縦列形式で表示する、可読性の高いマークアップ言語です。

json形式に似ています。構文はjsonよりも簡単です

YAML ではデータ構造を表すためにインデントが使用され、連続する項目は - マイナス記号で表されます。

1. yaml ファイルを使用する際の注意事項:

  1. 大文字と小文字を区別
  2. インデントによる階層関係の表現
  3. インデントできるのはスペースのみですタブ キーは使用できません
  4. # キーを使用してコメントできます
  5. 記号文字テストの後にスペースがあります: 2
  6. 一重引用符で囲まれた文字は通常の文字列として扱われます。 「#$*」 (二重引用符で囲まれた特殊文字が元の意味を表す場合)

2. yaml ファイルの基本的なデータ構造:

2.1. 変数の宣言 (スカラー。分割できない単一の値、型: 文字列、整数、ブール型)
name: test
age:	20
tall: yes
handsan: yes
wan: no
2.2. リスト: 順序付けられた要素のコレクションを表します
class:
  - test
  - test1
  - test2
2.3. キーと値のペアのマッピング:
student: 
  name: test
  age: 20
student1:
  name: test1
  age: 18
2.4. 注:
#test
2.5. 引用:
student: &id1
  name: test
  age: 20
student1: *id1
#用&来定义锚点,用*来进行引用
2.6. 文字列の引用符:
name: 'test'
name: "test"
name: '$'		表示字符串
name: "$"	表示$这个字符

二、docker-compose

1。概要

docker-compose: スタンドアロン コンテナ オーケストレーション

Dockerfile: 最初にファイルを構成し、次にイメージ -> コンテナーをビルドします。

docker-compose: Dockerfile またはイメージに基づいて、ワンクリックでイメージとコンテナーを取得できます。

Docker-compose は Python に基づいて開発されており、docker を実行できるプラットフォームであればどれでも docker-compose を使用してコンテナーをオーケストレーションおよび管理できます。

要点は、yaml 形式の docker-compose 構成テンプレート ファイルで複数のコンテナーの起動パラメーターと依存関係を定義し、このテンプレート ファイルの構成に従って docker-compose を使用してコンテナー クラスターを起動および管理することです。

docker-compose の中心となるのは yml ファイルで、コンテナーに関するすべてを定義できます。 yml 設定を通じてコン​​テナを直接実行する

docker: 主に単一ノードとして機能します。 Docker には、外部サービス用に統合されたポートと構成がありません。 Docker は通常、内部的にアクセスされます。 https を使用する必要はありません。クラスタ化および分散された方法で外部にユニファイド アクセス ポートを提供する場合は、K8S+ingress

2. docker-compose の一般的なコマンド:


docker-compose.yml ファイルが必要です

ビルド: ビルドサービス

ps: docker-compose によってオーケストレーションされたコンテナーの一覧表示

上: コンテナを作成して起動する

上: コンテナのプロセスを表示します

ログ: コンテナーの出力ログを表示します。

down: コンテナ、ネットワーク、データ ボリュームを削除します

exec: コンテナ内でコマンドを実行します。

停止/起動/再起動:停止/起動/再起動

スケール: コンテナサービスの起動数(コピー数)を指定します。

3. docker-compose の 3 つの主要な概念

プロジェクト project -> 1 つ以上のサービスが含まれます service -> 1 つ以上のコンテナのイメージ、マップされたポート、環境変数などの起動パラメータが含まれます

1) デフォルトでは、プロジェクト ディレクトリ名がプロジェクト名として使用され、プロジェクト名の指定には -p または --project-name がサポートされています。

2) docker-compose 構成テンプレート ファイルがプロジェクト ディレクトリに含まれている必要があります。デフォルトは docker-compose.yml です。プロジェクト構成テンプレート ファイルを指定するには、-f または --file を使用できます。

3) 構成テンプレート ファイルには 1 つ以上のサービスが含まれている必要があります。各サービスには、名前、イメージ、マップされたポート、環境変数、マウント ポイント、ネットワーク モード、依存関係、およびコンテナー起動用のその他の構成パラメーターが含まれます。

4. docker-compose.yml ファイル形式:

version: '3'
#指定docker-compose的文件版本,解析代码的版本,声明解释器
services:
#定义需要运行的服务,声明服务,可以有多个services
  nginx:
    container_name: web1
#指定创建容器的名字
    hostname: nginx
#指定容器的主机名
    build:
#指定构建nginx的容器的上下文,以及dockerfile
      context: /opt/nginx
#指定Dockerfile的位置,如果用镜像换成image:
      dockerfile: Dockerfile
    ports:
      - 1213:80
#直接指定宿主机和容器的端口映射关系
    networks:
#声明给容器指定的IP地址
      mynet:
#自定义网络
        ipv4_address: 172.18.0.10
指定ip地址
    volumes:
       - /opt/www:/usr/local/src/nginx-1.22.0/html
networks:
#创建自定义网桥接口配置,#写在服务配置,赋予容器ip地址,写在定格,大的模块,创建网段!
  mynet:
    driver: bridge
#声明网段类型
    ipam:
#声明网段,IP地址的管理和配置
      config:
        - subnet: 172.18.0.0/16
#子网配置,指定IP地址的范围

3. docker-compose をデプロイする

1. Docker-compose のインストール:

2. 作業ディレクトリを作成し、関連する Dockerfile ファイルを書き込みます

lnmpをデプロイするためのディレクトリとファイルについては、昨日のdockerfileを参照して事前に準備してください。

https://blog.csdn.net/koeda1/article/details/134954286?spm=1001.2014.3001.5502

3. 構成ファイル docker-compose.yml を書き込みます。

構成ファイル docker-compose.yml を書き込みます
既存のイメージを使用してコンテナ (ローカル/ウェアハウス) イメージを作成します: name:tag
または、 Dockerfile に基づくオンサイト ビルド

version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: /opt/lnmp/nginx
      dockerfile: Dockerfile
    ports:
      - 1314:80
    container_name: nginx_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.10
    volumes:
      - "nginx-data:/usr/local/nginx/html"

  mysql:
    hostname: mysql
    build: 
      context: /opt/lnmp/mysql
      dockerfile: Dockerfile
    ports:
      - 3306:3306
    container_name: mysql_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.20
    privileged: true
#虽然我们登录容器,显示的是root用户,但是是伪root,一旦privileged是true,容器内的root和宿主机的root才拥有一样的权限,再生产中能不给就不给
    volumes:
      - "mysql-data:/usr/local/mysql/"

  php:
    hostname: php
    build:
      context: /opt/lnmp/php/
      dockerfile: Dockerfile
    ports:
      - 9000:9000
    container_name: php_server
    networks:
      lnmp:
        ipv4_address: 172.111.0.30
    volumes:
      - "nginx-data:/usr/local/nginx/html"
      - "mysql-data:/usr/local/mysql"

networks:
  lnmp:
    driver: bridge
    ipam:
      config:
        - subnet: 172.111.0.0/16

volumes:
  nginx-data:
  mysql-data:

4. 設定ファイルに従ってコンテナを作成して起動します

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

docker-compose: コンテナ オーケストレーションに docker-compose を使用するコマンドの先頭

-f: 特定の作成テンプレート ファイル (通常は docker-compose.yml) を使用します。

-p: プロジェクト名: プロジェクト名を指定します。追加しない場合はディレクトリ名が使用されます。追加することはできません。

-d: バックグラウンドで実行

5、コンテナにログインし、関連する操作を実行します

Mysql コンテナにログインし、権限を付与します。

データベースWordPressを作成します。

wordpress.* に対するすべての権限を 'wordpress'@'%' に付与します。 '123456'; によって識別されます。

*.* に対するすべての権限を 'root'@'%' に付与します。 '123456'; によって識別されます。

フラッシュ権限。

php コンテナに入り、マウント ディレクトリがマウントされているかどうかを確認します。

4. ホストIPにアクセスし、WordPressをインストールします。

おすすめ

転載: blog.csdn.net/koeda1/article/details/134969033