Dockerまとめ
環境はCentOS7のはず。
インストール方法
# curl -fsSL get.docker.com -o get-docker.sh # sh ./get-docker.sh
あるいは単にcurl -fsSL get.docker.com | sh
でもいいかもしれない。
Dockerの起動
# systemctl start docker
Dockerの状態を確認するには# systemctl status docker
サーバ起動時にDockerも起動する場合は
systemctl enable docker
使い方
基本的にはgitやlinuxのコマンドを踏襲した名前のサブコマンドを使って管理する。
例えば、imageの一覧はdocker image ls
のような感じになる。
コンテナの動かし方
イメージとコンテナがある。 イメージはコンテナの設計図のようなもので、何をインストールしてどのコマンドを実行するべきかなどの情報を持っているらしい。 一方コンテナは実際に稼動しているサービスのファイルシステムのようである。 イメージに従いコンテナを作りあげ、Dockerはそのコンテナの中でサービスを動かすといったような感じだろうか? 実際のコマンドは以下のような感じになる。
# docker container run hello-world
hello-worldというのはリポジトリにある、Helloと表示するだけのDockerイメージである。 これを使ってDockerが使えるかどうか試せる。 他のイメージでもだいたい同じようにして動かせる。
Dockerではコンテナの実行が終了するとそのコンテナを破棄するらしい(実際はしばらくの間/var以下にあるっぽい)。 なので、データを保存したり次の実行時に使う場合には-vを使って共有する領域に書き出すようにするなどの工夫が必要になる。
イメージのダウンロード
どこかが用意したリポジトリから既に設定されたイメージを使うことができる。 基本的に動かそうとしたときにローカルにないなら自動的にダウンロードされることになる。
Dockerイメージの作り方
+ docker container commit
- docker image build
FROM base image RUN running-command(like apt install something) CMD defalut-running-command
docker image bulid -t image-name path"
dockerhub login
docker login
docker image tag image-name:tag <user-name>/mywhale:latest
make space for container
docker image push <user-name>/mywhale
docker logout
nginx
docker image pull nginx:alpine
docker contianer run -d nginx:alpine
-d is detach-mode
docker container run -d -P nginx:alpine
-P is port mapping
docker container run -d -p 8080:80 nginx:alpine
host 8080 -> docker 80
docker network inspect bridge | less
network setting
docker network create --driver bridge --subnet 192.168.10.0/24 --gateway 192.168.10.1 mynet
run
docker run -it alpine /bin/sh
-i accept stdin
-t pseudo-tty
--net network-name
make volume
docker volume create myvolune
docker run -it -v myvolume:/data alpine /bin/sh
-v volume, this can mount local-directory
swarm
ps auxfw [0] tkgsy@tkgsy-HP-Pr0B00k ~/m/s/docker ➞