Dockerとは...
名前はもちろん知ってたし、「コンテナ」とかそういうキーワードは聞いたことあったけど、正直よく知らんかった。
「Dockerの基礎」を教えてくれるハンズオンセミナーに参加してきたので、「最低限理解しておきたいこと」をメモとして残しておく。
(※あんまり自信は無い。曲解があるかも)
「仮想化ソフトウェア」
Dockerとは、「コンテナ型の仮想環境」を「作成、配布、実行」するためのプラットフォーム。
「仮想化されたコンテナ」の上で、さまざまなミドルウェアを実行させることができる。
Dockerのメリット①「速い」
VMWareとかは、「PC全体を仮想化」するイメージで動作している。
Dockerは「ミドルウェアを実行する部分を仮想化」しているイメージのため、動作が速い。
Dockerのメリット②「Dockerfile」
「Dockerfile」は、「環境構築のための情報」が色々記載されたファイル。
また、ファイルの中身を見ることで、その環境の情報(使っているソフトとかバージョンとか)がすぐ分かる。
Dockerfileをビルドすることで、環境を構築できる。
「Githubとかでバージョン管理する」こともできるし、「開発メンバが増えた際の環境構築が楽になる」という、色々なメリットがある。
(実際の現場では、「インフラ担当のメンバ」がゴリゴリDockerfileを書いて、それを使うことが多いらしい。)
Dockerの色んな用語
「コンテナ」
実際に「ミドルウェアが動いている部分」みたいな感じ。
コンテナで区切られて実行されているため、「同じミドルウェアのバージョン違い」も同時に実行することができる。(別のIPアドレスで実行されている)
「イメージ」
コンテナを動かすための「設計図」みたいな感じ。
「イメージ」を落としてきてから(docker pullコマンド)、「コンテナ」を実行する(docker runコマンド)。
「公開されているイメージ」を使う
1からDockerfileを記述して環境構築することもできるが、初心者は「公開されているイメージ」を基に環境構築するのが楽。
DockerHubから探して落としてくる。インストールやrunの仕方(コマンド)も乗っているため、すぐに使える!
DockerHub
Dockerで使えるコマンド
実行中のプロセスを表示
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4accd55b32c4 microsoft/mssql-server-linux "/opt/mssql/bin/sqls…" 4 seconds ago Up 3 seconds 0.0.0.0:1433->1433/tcp jovial_euler
コンテナの起動、停止、再起動
docker start コンテナID
docker stop コンテナID
docker restart コンテナID
コンテナを削除する
docker rm コンテナID
コンテナへ接続
ミドルウェアの中で吐かれるログを確認したいときは、このコマンドで中に入ってログを見る。
docker exec -it コンテナID /bin/bash
イメージを確認
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mongo latest a0f922b3f0a1 10 days ago 366MB
nginxhttpphpmysql_php latest 348d430cfda8 3 weeks ago 79.5MB
microsoft/mssql-server-linux 2017-latest 741bd53beb22 5 weeks ago 1.42GB
microsoft/mssql-server-linux latest 741bd53beb22 5 weeks ago 1.42GB
mysql 5.7.21 5195076672a7 6 weeks ago 371MB
nginx 1.13.9-alpine 537527661905 2 months ago 17.9MB
php 7.2.2-fpm-alpine3.6 59d3e94a05b7 2 months ago 77.2MB
イメージを削除
docker rmi imageID
Dockerを使って...
Docker上でASP.NETアプリケーションが動かせるようにしてみたい。
SQLServer
とりあえずSQLServerをインストールしてみた。
docker pull microsoft/mssql-server-linux
docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=P@ssw0rd! -p 1433:1433 -d microsoft/mssql-server-linux