目次
2.1. 変数の宣言 (スカラー。分割できない単一の値、型: 文字列、整数、ブール型)
2.2. リスト: 順序付けられた要素のコレクションを表します
2. 作業ディレクトリを作成し、関連する Dockerfile ファイルを書き込みます
3. 構成ファイル docker-compose.yml を書き込みます。
4. ホストIPにアクセスし、WordPressをインストールします。
1. YAMLファイル形式と記述上の注意事項(重要)
Yaml ファイル: シリアル化されたデータ形式を縦列形式で表示する、可読性の高いマークアップ言語です。
json形式に似ています。構文はjsonよりも簡単です
YAML ではデータ構造を表すためにインデントが使用され、連続する項目は - マイナス記号で表されます。
1. yaml ファイルを使用する際の注意事項:
- 大文字と小文字を区別
- インデントによる階層関係の表現
- インデントできるのはスペースのみですタブ キーは使用できません
- # キーを使用してコメントできます
- 記号文字テストの後にスペースがあります: 2
- 一重引用符で囲まれた文字は通常の文字列として扱われます。 「#$*」 (二重引用符で囲まれた特殊文字が元の意味を表す場合)
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 コンテナに入り、マウント ディレクトリがマウントされているかどうかを確認します。