Docker初心者編

f:id:mnagai-373:20190101233256p:plain

Docker勉強会に行ってきた

もくもく寺が主催しているDocker勉強会に参加してきました! 初心者編は技術書典5で大人気だった「マンガでわかるDocker②」を、作者の湊川あい@llminatoll さんと一緒に、マンガの内容に沿って実際に操作しながらハンズオンで学べる会。

中級編は@youchan(大崎瑶)さんによるDockerfileを書いてみようの会です。

このブログでは初心者編についてアウトプット。

Dockerって

仮想環境を立ち上げてmacでLINAXが起動できたりする。

  • プロジェクトごとに環境を切り替えることができる。
  • 冪同性がある

何度立ち上げても同じ環境である -> 冪同性がある

セーブされる時とセーブされない時がある -> 冪同性がない

docker run hello-worldでコンテナを起動してみよう

docker psで起動しているコンテナを表示します。

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

稼働しているコンテナがないため何も表示されません。 ここでdocker run hello-worldを実行します。 これによって、コンテナ作成、コンテナ起動、コンテナログインが行われます。

ちょっぴり解説↓

# hello-worldというイメージがないよ
Unable to find image 'hello-world:latest' locally
# イメージがなかったからdocker hubから勝手にダウンロードしてきたよ
latest: Pulling from library/hello-world

コンテナから出るにはcontrolを押しながらp → qを押します。 exitでも出ることはできますが、その場合コンテナも停止してしまうので、停止したくないけど出たい場合に先ほどのコマンドを使います。

起動しているコンテナに入る

control + p → qでコンテナから出た場合、そのコンテナに再度入ることができます。 docker attach $コンテナ識別子$

docker runがやっていること

docker hubからイメージを取得

docker pull $imageの名前$

コンテナ生成

docker create -it $imageの名前$

コンテナ起動

docker start -a -i $コンテナ識別子$ (コンテナIDは一部のみでも識別される)

その他コマンド

コンテナ停止

docker stop $コンテナ識別子$

コンテナ削除

docker rm $コンテナ識別子$

NAMESとは

dockerが勝手につけてくれる名前。 変更することが可能。

docker rename $古いコンテナ名$ $新しいコンテナ名$

まとめ

本日はここまで! 次回はDockerfile、Docker composeについてまとめたいと思います。