Dockerの基本

忘れる

目下コンテナ市場が激アツになっています。各クラウドがどんどんマネージドサービスを提供しているし、kurbenetesとかも大流行してます。自分もクべりたいのですが、中々手が回らないのと普通にエラー吐いて進まないのが現状です。

更にはansibleなど別の構成管理ツールを勉強している内に、Dockerfileとかオプションの意味とかを忘れてしまっております。その都度調べ直すのは、中々辛いので簡単なとこだけでも記述しておきたいと思います。
以前ここでLAMPのdocker-composeを書きましたが、それよりも基礎的な事を勉強し直したいと思います。

準備

docker自体の準備はとても簡単です。

$ yum -y install docker
# systemctl start docker

Dockerfile

Dockerfileは構成管理の手順書の様な物です。Dockerfileに記述した通りにコンテナにインストールされていきます。
ansibleで言うところのplaybookです。

今回はシンプルにCentOS7のコンテナを作成します。

イメージ作成

FROM centos:7
# update
RUN yum -y update
RUN yum clean all

# set locale
RUN yum reinstall -y glibc-common
RUN yum clean all
ENV LANG ja_JP.UTR-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTR-8
RUN unlink /etc/localtime
RUN ln -s /usr/share/zoneinfo/Japan /etc/localtime

# editor install
RUN yum install -y vim
RUN yum clean all
$ tree .
.
|-- Dockerfile
`-- README.md

※Dockerfileだけでよい
Dockerfileが出来たらそれを元にイメージを作成。

$ docker build -t labo:centos7 ./
$ docker images

-tオプションは’名前:タグ’

コンテナ作成

$ docker run -itd --name centos7 【イメージID】 /bin/bash
$ docker ps
  • -iはホストの標準入力をコンテナの標準入力に接続
  • -tはホストのターミナルをコンテナの標準入力に接続
  • -dはバックグラウンドジョブとしてコンテナ起動
  • centos7というコンテナ名
  • /bin/bashは引数。

片付け方

# プロセス削除
$ docker rm -f `docker ps -q`
# イメージ削除
$ docker rmi -f `docker images -q`

イメージにタグを付ける/消す

# タグ(別名)を付ける
$ docker tag 【別名元イメージ名:タグ】 【別名イメージ名:タグ】
# タグ(別名)を消す
$ docker rmi 【別名イメージ名:タグ】

コンテナ・ホスト間のファイルコピー

コンテナからホストへコピー
$ docker cp 【コンテナID】:/myapp/fileA ./fileA

ホストからコンテナへコピー
$ docker ./fileA 【コンテナID】:/myapp/fileA

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA