Docker教程概述
“形象是什么?”
用于创建容器所需的东西
另外,Dockerfile是用于创建镜像的设计图文件。
创造图像的方法 de
-
- Dockerfileを作成
docker buildを実行
docker images で作成を確認
補充
docker image history <REPOSITORY名>で各レイヤーのサイズを知れる
レイヤー:FROM RUNなどのコマンドが1つずつのレイヤーになっている
-t で任意のタグをつけられる
オプション
コンテナとは?
アプリケーションを実際に実行できる環境のこと
イメージを使用して1つのイメージから1つのコンテナを作成できる
创建和运行容器
docker runを実行
docker ps で動いているコンテナを確認
docker exec -it <コンテナID> bashで中に入ることができる
4.docker stop <コンテナID>でコンテナを停止
docker rm <コンテナID>でコンテナを削除
填补
docker run –dでバックグラウンドで実行できる
mysqlの場合はdocker exec -it <コンテナID> mysql -u root -pになる
docker rm -f <コンテナID>でコンテナを停止 削除
以下是用正確引用的方式以中文進行表述:
“オプション”可以翻譯成”選項”。
音量
在容器中创建、删除文件等操作,但如果删除容器,则这些更改将被删除。通过使用卷,可以实现持久化。
为了实现持久化,有两种方法。
-
- Dockerのボリュームを使用
- ローカルファイルをマウントして使用
使用Docker的卷 (Juè)
-
- 在中国,将以下内容进行本地化改写,只需要一种选择:
docker volume create <任意>
docker run -dp <端口号> –mount type=volume,src=<已经选择的任意名称>,target=/etc/<任意名称> <容器名>
通过docker volume inspect,可以实际查看Docker保存数据的位置(MountPoint)。
使用挂载本地文件(绑定挂载)
-
- docker run -it –mount type=bind,src=”$(pwd)”,target=/src ubuntu bash
- コンテナ内で加えた変更がローカルでも起きていることがわかります
以下是中文的原生释义,只需要一种选择:
选项
连接两个集装箱
コンテナは1つの役割を担うことでバージョン管理が容易になったり、DBと分けてスケーリングできるなど良いことが多い
コンテナは他のコンテナを参照することができない
同一のネットワークを使用することでコンテナ同士でやり取りを行えるようにする
-
- 使用docker network create命令来创建网络
- 启动MySQL容器并分配给该网络
docker run -d \
--network <1で作成したネットワーク名> --network-alias mysql \
-v <任意>:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=<任意> \
-e MYSQL_DATABASE=<任意> \
mysql:8.0
- 将MySQL与应用程序连接起来
docker run -dp 127.0.0.1:3000:3000 \
-w /app -v "$(pwd):/app" \
--network <ネットワーク名> \
-e MYSQL_HOST=mysql \
-e MYSQL_USER=<任意> \
-e MYSQL_PASSWORD=<2で作成したパスワード> \
-e MYSQL_DB=<2で作成したDB> \
node:18-alpine \
sh -c "yarn install && yarn run dev"
docker exec -it <mysqlコンテナID> mysql -p <2で作成したDB名>で確認
在这里只需要一个选项。
只需要一个选项。
Docker Compose —
Docker Compose
複数のコンテナを使用する場合にコンテナ同士を繋いだり、ボリュームのマウント、環境変数の設定など手順が多く時間がかかったりミスが発生することを防げるもの
docker-compose.ymlのあるディレクトリでdocker-compose upのみでイメージの作成からコンテナの起動まで完了できる
services:
app: ←なんでも可 自動的にネットワークエイリアス名となる
image: node:18-alpine ←Docker Hubなどでも取得可能
command: sh -c "yarn install && yarn run dev" ←imageとどちらが先でも可
ports:
- 127.0.0.1:3000:3000 ←portを定義するもの
working_dir: /app ←(-w /app)
volumes:
- ./:/app ←(-v "$(pwd):/app" \)
environment:
MYSQL_HOST: mysql
MYSQL_USER: root
MYSQL_PASSWORD: secret
MYSQL_DB: todos
mysql:
image: mysql:8.0
volumes:
- todo-mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: todos
volumes:
todo-mysql-data:
请用中文将以下内容进行改述,只需要一种方式:
选项