Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
15
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

Dockerの基本操作メモ

環境はMac。まあ、他でも同じでしょうけど。

基本操作

インストール

ここからダウンロードしてインストールするだけ。

イメージの取得

目的に報じて取ってくる。centosとかは標準である。例えばsqlserverとかだと、microsoft/mssql-server-linuxといった感じでリポジトリ名/イメージ名という感じ。

docker pull centos
docker pull ubuntu

イメージの確認

取得したイメージはimagesで取得できる。

docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              98d35105a391        2 weeks ago         193 MB
ubuntu              latest              0ef2e08ed3fa        4 weeks ago         130 MB

centosとubuntuのイメージがある。

イメージの削除

利用しなくなったイメージはIMAGE_IDを指定することで削除可能。

docker rmi IMAGE_ID

コンテナが動いていると削除できない。その場合はforceオプションを付ける。

コンテナの起動

イメージを指定してコンテナを起動します。

docker run -itd --name centos1 centos

docker run -itd centosとしてもいいが、名前がランダムに付く。
docker run -itd --name centos1 centos /bin/bashなどとしてシェル指定できる。
-dはバックグラウンド。-dがないとexitするとコンテナも停止する。
-pでポートのマッピングもできる。-p 8888:80とすると、ホストの8888をコンテナの80にマップできる。

コンテナへのログイン

docker exec -it centos1 /bin/bash

シェルを指定しないとエラーとなる。

コンテナの停止

docker stop CONTAINER_ID_or_NAMES

停止中のコンテナの再スタート

docker start CONTAINER_ID_or_NAMES

動いているコンテナの確認

動いているコンテナのみ表示される。

docker ps

全てのコンテナの確認(停止等含む)

停止中のコンテナも見たい場合はこちら。

docker ps -a

コンテナの削除

docker rm CONTAINER_ID_or_NAMES

応用

httpdを起動してみる

まず、標準で落ちてくるcentosイメージはCentOS7.xです。なので、サービスの制御にはsystemctlを使います。
が、基本設定ではsystemctlは利用できません。

systemctl start httpd.service
Failed to get D-Bus connection: Operation not permitted

こんな感じで怒られます。これを避けるためにはrunの際に--privilegedオプションを付与して起動します。

docker run --privileged -d -p 8080:80 --name centos1 centos /sbin/init

ログインシェルは/sbin/initとする。

ログインして一連の操作を行う

docker exec -it centos1 /bin/bash
yum install -y httpd
systemctl start httpd.service
systemctl enable httpd.service

これでとりあえずは動くけど、暫定策。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
15
Help us understand the problem. What are the problem?