kinjouj.github.io

Docker (1)


Docker

とりまDockerを使ってみる。公式イメージのnginxを使ってこのサイトをデプロイして見れるまでに

インストール

sudo apt install docker.io

一応、そのままでも使えるが以下でやるbuildが今後deprecatedになるらしいのでbuildx

mkdir -p $HOME/.docker/cli-plugins
mv docker-buildx-version $HOME/.docker/cli-plugins/docker-buildx
chmod +x $HOME/.docker/cli-plugins/docker-buildx

※sudo apt install docker-buildx-pluginでも可能っぽい

Dockerfileを作成

FROM nginx
WORKDIR /usr/share/nginx/html
COPY docs .
EXPOSE 80

build

docker buildx build -t web .

なんやらダウンロードなどが完了したあとで

docker images -a

をすると

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
web          latest    a305d54525f8   29 seconds ago   328MB

という感じでDocker Imageが作られるのでこれを起動する

起動

docker run -d -p 8080:80 -t web

完了するとDocker側の80番ポートがこっち側では8080番ポートでアクセスできるので見れるか確認してみる

やったあとで

docker container ls

をすると起動したコンテナが以下のように表示される

CONTAINER ID   IMAGE     COMMAND                   CREATED              STATUS              PORTS                                   NAMES
54702b792684   web       "/docker-entrypoint.…"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp, :::8080->80/tcp   objective_torvalds

コンテナの停止

docker container ls

でコンテナIDを取得して

docker stop 54702b792684

でコンテナを停止することができる。でその際停止した使用してないコンテナを消す場合には

docker container prune

で削除できる。特定のだけ消したい場合には

docker container rm [container ID]

で削除できる。又、存在しているコンテナをすべて一括で止める場合には

docker stop $(docker container ls -qa)

というようにやってもできる

イメージの削除

docker images -a

を実行すると以下のように存在しているDocker Image一覧が出る

REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
web          latest    a305d54525f8   4 minutes ago   328MB
kanon:/home/kanon/docker:$ docker image rm a305d54525f8

あとは

docker image rm web

docker rmiでもいいっぽい

という感じでDocker Imageを削除できる

余談

Docker Desktopを使いましょう!!