Open4
docker
コマンド
docker run [イメージ名]
- ローカルのイメージから、コンテナを立ち上げる
- イメージがなければ、docker hub からとってくる
docker start [ID/コンテナ名]
docker stop [ID/コンテナ名]
docker build [Dockerfileのパス]
- Dokcerfileからimageを作成
docker exec [コマンド指定] [コマンド]
- centos のコンテナに入る
- docker exec -it mycentos /bin/bash
- コンテナ内に入って、centos の version を返す
- cat /etc/redhat-release
- コマンドを外から実行する
- docker start xxxx
- docker exec mycentos cat /etc/redhat-release
ストレージ
コンテナにボリュームをマウント
- docker run -v ホストのパス : コンテナのパス イメージ名
- nginx の コンテナにホスト側の index.html をマウント
- docker run -v /Users/t-katayama/desktop/test/:/usr/share/nginx/html --name mynginx -p 8080:80 nginx:1.16
- パスは絶対パスである必要がある
Dockerfile
- Dockerイメージをコード化したもの
RUN
- Dockerfileからイメージを作る時に実行されるコマンド
CMD
- イメージをコンテナ化する時に実行されるコマンド
- 書き方は色々あるが代表的なものを覚えておく
- CMD ["aaa","bbb","ccc"]
サンプルコード
FROM ubuntu:20.04
RUN apt-get update -y && \
apt-get install -y nginx
CMD [ "nginx","-g","daemon off;" ]
- イメージ作成
- docker build -t dockerfile-nginx .
- コンテナ起動
- docker run -d -p 8080:80 --name dockerfile-run-nginx dockerfile-nginx
ADD
- ファイルにイメージを追加
- ADDはネット経由でできる
COPY
- ファイルにイメージを追加
- 基本ローカルからの追加
サンプルコード
FROM ubuntu:20.04
RUN apt-get update -y && \
apt-get install -y nginx
CMD [ "nginx","-g","daemon off;" ]
<h1>Hello from Docker</h1>
あとは同じ
ENV
- ENV key = "val"
docker compose
サンプルコード
version:"3"
services:
web:
build: ./php
container_name: "php8"
ports:
"8080:80"
db:
image: mariadb: 10.4
volume:
./data:/car/lib/mysql
- version service は必須
- service のしたは、コンテナ名を書く
- image
- 既存の image を指定
- build
- Dockerfile からイメージを作る
- container_name
- docker run --name と同じ
- volume
- docker run -v と同じ
- コンテナとホストにディレクトリを共有
- ホストのパス : コンテナのパス
- ports
- docker run -p と同じ
- 外部公開ポート: コンテナ内ポート