Dockerの基本概念
Dockerとはアプリケーションを開発・移動・実行するためのプラットフォームです。
設計思想は開発者が簡単にアプリケーションを動かす環境を作る。
Docker Container
- 実際動かすアプリケーションの環境
- コンテナ毎にリソースをもつ
- 仮想環境と同じような考え方ですが、コンテナはアプリケーション単位
- 整合性の高いアプリケーションや、それに関する環境設定を同じコンテナに設定すればよい
Docker Image
- コンテナを実行するためのファイルシステム
- 仮想環境のイメージファイルと相当
- バージョン管理はGitlabなどのWebサービスを利用してもよいし、ローカルでも管理出来ます。
Docker File
- イメージを作成するための設定ファイル。
- Imageの環境構築手順を書けます。
- ソースファイルと一緒に管理し、デプロイする度に呼び、該当バージョンのイメージを作成
Docker yaml
- DockerFileとほば同じ役割
- DockerFileより、書きやすい
- その他は勉強中。。。
Dockerのインストール
最新版をダウンロードして、インストールだけ
検証手順:https://qiita.com/kurkuru/items/127fa99ef5b2f0288b81
Docker Fileの作り方
- ファイル名「Dockerfile」としてファイルを新規作成
-
FROM
でベースになるイメージを指定 -
RUN
、CMD
などで実行コマンドを必要に応じて追加
FROM python:3.6
COPY . /app
WORKDIR /app
RUN pip install -r /app/requirements.txt
CMD python DemoApp/src/run_server.py
Docker Imageの使う方
DockerFileからイメージを作成する
docker build -t admin/httpd .
現在のフォルダにあるDockerFileにより、「admin/httpd」という名前のイメージを作成する
コンテナからイメージを作成する
docker commit demo-container demo/img:qa
コンテナ「demo-container」をベースに名前「demo/img」タグ「qa」のイメージを作成する
イメージ一覧の表示
docker images
現在ローカルにあるイメージの一覧を表示する
イメージの削除
docker rmi demo/img
名前「demo/img」のイメージをローカルから削除する
イメージの更新
docker pull demo/img
名前「demo/img」のイメージの最新版を取得
Docker Containerの使う方
既存コンテナの一覧を表示
docker ps
各コンテナの状態も見えます。
イメージファイルからコンテナを生成し、起動する
docker run admin/httpd
名前「admin/httpd」のイメージでコンテナを生成し、起動する
よく使うオプション:
-
--name
コンテナ名を指定 -
-d
起動後にバックグランドで実行 -
-i
起動時に STDOUT を開きっぱなしにしてくれる -
-e
環境変数の指定 -
-p
ポートの開放 -
-v
ホストディレクトリをコンテナにマウントする
作成したコンテナに対する操作
- コンテナを起動
docker start admin/httpd
- コンテナを停止
docker stop admin/httpd
- コンテナを再起動
docker restart admin/httpd
コンテナを削除
docker rm admin/httpd
削除前に停止する必要があります。
Docker yamlの作り方
学習中
https://qiita.com/yuta-ushijima/items/d3d98177e1b28f736f04
https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa
参考リンク
https://qiita.com/curseoff/items/a9e64ad01d673abb6866
https://www.slideshare.net/zembutsu/docker-images-containers-and-lifecycle
https://qiita.com/tera_shin/items/8a43e904bd15990d3129#%EF%BC%97%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E4%B8%80%E8%A6%A7