fr33f0r4ll

自分用雑記

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 ➞