2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Dockerってほんとに便利ですよねぇ。
以下では、Dockerのインストール方法とよく使うコマンドを書いていきます。

Dockerとは

  • アプリケーションとその依存関係を”コンテナ”と呼ばれる包装にパッケージ化できるプラットフォーム
  • HyperVisorによるゲストOS仮想化と比べると、軽量でリソース効率的と言われている

image.png

以下のようなコンテナのイメージのバージョンのことをTagという。

image.png
「nginx:1.14-perl」のようにTagを指定する。

DockerFile

DockerFileに、取り込むimageのTagや起動後にインストールしたいパッケージ、実行したいコマンドを記載することができる。

Apache Server
FROM ubuntu:18.04
RUN apt-get -y update && apt-get install -y apache2
CMD ["apachectl","-D","FOREGROUND"]

FROM:元にするイメージを指定
RUN:Buildするときに実行したいコマンドを書く(インストールコマンドなど)
CMD:コンテナ実行時に実行したいコマンドを書く

CMDの例

  • shell形式
    CMD service mysqld start
  • exec形式
    CMD ["apachectl","-D","FOREGROUND"]

参考

データ管理

コンテナは停止後にデータが消えてしまう。ホストOS上の特定のディレクトリをvolumeとしてmountするなどの方法がある。

ネットワーク管理

コンテナ同士でデータをやり取りする方法がいくつかある。
詳しくは以下の記事を参照(私の記事です)。

Dockerのインストール(Ubuntu 18.04)

sudo apt-get remove docker docker-engine
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get install -y docker-ce
sudo docker -v

出力例

Docker version 24.0.5, build ced0996

よく使うコマンド

ローカルのイメージの確認

docker images

イメージの実行

docker run hello-world
docker run docker/whalesay cowsay hello world

ローカルにイメージがなければDocker Hubから取得して実行します。
上記のようにTagを指定しない場合、latestのタグが付いているイメージが実行されます。

コンテナを対話的なモードで起動し、ターミナルに接続する

docker run -it —rm -p 10081:80 ubuntu:18.04 

ホストの10081ポートをコンテナの80ポートにフォワーディングするという設定になっています。
サーバとして動くようなコンテナでは、この「-d」を指定しないと、コンテナが終了するまでプロンプトに戻ってこなくなってしまうので、これは指定必須です。
—rmを指定すると、実行後に自動的にコンテナを削除します。
—nameを指定すると、その名前でそのコンテナに対して操作ができるので、コンテナIDをコピペしなくて済みます。

参考

Docker Hubからdockerユーザのwhalesayというイメージをダウンロード

docker pull docker/whalesay 

Dockerfileからdocker-whaleイメージを作成する

docker build -t docker-whale .

ローカルイメージの詳細確認

docker inspect docker-whale

ローカルイメージの構築履歴表示

docker history docker-whale

ローカルイメージのタグ付け

docker tag イメージID ユーザ名/docker-whale:latest

Docker Hubへのログイン

docker login

タグ付けしたイメージのpush

docker push ユーザ名/docker-whale

ローカルイメージの削除

docker rmi –f docker-whale

起動中のコンテナ一覧を表示する

docker ps

停止中のものも含めて全てのコンテナ一覧を表示する

docker ps -a

停止中のものも含めて全てのコンテナ一覧を表示する(コンテナIDのみを表示)

docker ps -aq

全てのコンテナを削除

docker rm $(docker ps -aq)

該当のIDのコンテナを起動/停止/再起動する

docker start/stop/restart [コンテナID]

起動状態のコンテナにログイン

docker attach [コンテナID]

なお、tomcatコンテナなど、本来バックグラウンドで実行されることを前提としているコンテナにはattachではコンソールに入ることができません。よって、以下のような手順を踏みます。

docker run -d -name tomcat -p 8080:8080 tomcat:tag
docker exec -it tomcat bash

コンテナからイメージを作成する

docker commit [コンテナID] ubuntu_img(イメージ名)

コンテナの/app/data.txtをホストの/home/userにコピーする

docker cp [コンテナIDかコンテナ名]:/app/data.txt /home/user

参考:
https://qiita.com/gold-kou/items/44860fbda1a34a001fc1

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?