dockerを触ってみた

便利そう

でもコマンド多くて覚えきれないわ あとで固定ページとしてまとめよう。。

イメージを検索 docker search centos | more

イメージを公式から持ってくる docker pull centos

持っているイメージを表示する docker images

イメージの詳細を見る docker inspect centos(:latest) docker inspect {IMAGE ID}

イメージの削除 docker rmi {IMAGE ID}

コンテナ作成

コンテナを作ってechoする docker run centos echo "hello world"

実行中のコンテナ一覧を見る docker ps

実行し終わったコンテナ一覧を見る docker ps -a

コンテナ削除 docker rm {CONTAINER ID}

実行中のコンテナを弄る -d バックグランドで動かす docker run -d centos free -s 3

docker psで確認できる

出ているログを確認 docker logs {CONTAINER ID}

3秒ごとにメモリの表示をみれる docker attach --sig-proxy=false {CONTAINER ID}

止める場合 docker kill {CONTAINER ID}

docker psで止まっているのがわかる

止めていたのを起動する場合 docker start {CONTAINER ID}

コンテナのイメージを作る コンテナの中で作業する docker run -i -t centos /bin/bash

-i インタラクティブ -t ターミナル

exitで抜けて実行しているのが停止する

docker ps -aで確認してそのイメージをつくる docker commit {CONTAINER ID} {image名}

docker run -i -t {image名} /bin/bash で先ほど作ったイメージを起動できる

Dockerfileを作る

vi Dockerfile FROM centos MAINTAINER Gen astel astel@gmail.com

RUN echo "now building" CMD ["echo","now running"]

docker build -t astel/echo . astel/echo が{image名} .はDockerfileがある場所を示す

docker imagesで今作ったものが確認できる

docker run astel/echo で now running と表示される

dockerでwebサーバを立ち上げる

centos7だと色々面倒だったのでcentos6を持ってくる docker pull centos:centos6

cat Dockerfile FROM centos:centos6 MAINTAINER Gen astel astel@gmail.com

RUN yum install -y httpd ADD ./index.html /var/www/html/ EXPOSE 80 CMD ["/usr/sbin/httpd","-D","FOREGROUND"]

cat index.html test

docker build -t astel/httpd . docker run -p 8080:80 -d astel/httpd

docker psで起動しているのが確認できる またdokcerのip:8080で今起動しているdockerのコンテナのwebにアクセスできる

docker indexにpush docker indexでサインアップ

ログインする docker login docker push astel/httpd