普段の仕事でIDCFクラウド使って、バーチャルマシン立ち上げて、Elixirをインストールすることがよくあるので、面倒になって、人の作ったimageを使って、すぐElixirが使えるようにしたいです。
dockerをインストールして、起動します。trenpixster/elixirをpullしてからアクセス
# yum install epel-release
# yum install docker
# systemctl start docker.service
# docker info # 生きてるかを確認
# docker pull trenpixster/elixir
# docker run trenpixster/elixir echo "hello world"
hello world
# docker run -i -t trenpixster/elixir /bin/bash
# iex
Dockerのインストール情報をチェック
$ docker info
$ docker run --name my-redis -it ubuntu:latest bash
$ man docker-run
-i, --interactive=true|false
Keep STDIN open even if not attached. The default is false.
-t, --tty=true|false
Allocate a pseudo-TTY. The default is false.
When set to true Docker can allocate a pseudo-tty and attach to the standard input of any container. This can be used, for example, to run a throw‐
away interactive shell. The default is value is false.
普通ユーザー権限で操作
Centos中の普通ユーザーでもdockerを使えるようにする前にまずそのユーザーをdocker
グループに追加する必要がある
# usermod -aG docker admin-user
Dockerfileをビルド
Dockerfileが存在しているディレクトリに下のコマンドを実行する。最後の点が忘れずに
sudo docker build -t="wang/super_nginx_image" .
Dockerfielの中身
FROM ubuntu:12.04
MAINTAINER "aaa" "abc@example"
RUN apt-get update
RUN apt-get install -y nginx
RUN echo 'Our first Docker image for Nginx' > /usr/share/nginx/www/index.html
EXPOSE 80
作ったimageを使ってみる
# docker images
# docker run -i -t wang/super_nginx_image /bin/bash
root@72951e4df540:/# service nginx start
Starting nginx: nginx.
docker ps
は、現在動いているコンテナの一覧を返します。
一括削除する
# docker rm `docker ps -a -q`
Dockerイメージを削除する
# docker rmi [イメージID]
DockerイメージをRename
$ docker rename old_name new_name
ubuntuコンテナー中のコマンドを実行
$ docker run ubuntu /bin/echo hello world
hello world
ubuntuコンテナーをdetached modeで動かす
$ docker run -d ubuntu
bf0d4abb80c99c51305eb5384443de43e5add695f208e429e3c26244b8789a1d
Apacheをubuntuコンテナーにインストール後、commitして、新しいコンテナーを作成
Terminal-1
apache2をインストール
$ docker run -t -i ubuntu
# apt-get update && apt-get install apache2
Terminal-2
Apache2がインストールされているコンテナーをcommitして、新しいapache-ubuntu
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1e88c4df7e8 ubuntu "/bin/bash" 2 minutes ago Up 2 minutes naughty_curie
$ docker commit c1e88c4df7e8 apache-ubuntu
公式サイトでimageを探す
$ docker search elasticsearch