CentOS 6.x + Docker で開発環境をつくる

  概要

 レンタルしているVPSにDockerをインストールして開発環境を作成した話。
  • Docker をインストール
  • Docker イメージをPull
  • docker run( + コンテナにポート割当/ホストのディスクをコンテナにマウント)
  • コンテナへのSSH接続
についての備忘録。

はじめに

さくらインターネットのVPSを借りています。

1,000円程度で借りれるとはいえ、複数借りるとそれだけお金がかかってしまいます。
そこで、登場願うのが軽量コンテナ型の仮想技術 Docker です。
Dockerについての私の理解は
  • 仮想環境を作成する技術
  • イメージという雛形ファイルから環境を複製できる
  • 構成内容をDockerfileに記述して「docker build」コマンドをすれば、コンテナを自動作成できるらしい
といった浅い知識しかありません。

借りているVPSは下記のとおりです。

OS CentOS 6.8
メモリ 1G
CPU 仮想2Core
ストレージ HDD 100G

Dockerインストール 

それでは早速始めていきましょう

1.リポジトリからyumでインストール

$ rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
$ yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ yum -y install docker-io



2.サービス起動 & 自動起動ON

$ sudo service docker start
$ sudo chkconfig docker on



3.イメージファイルを取得する

イメージファイルはコンテナのもとと考えています。
基本的なOSやミドルウェアなどが入ったもので、イメージからコンテナを作成すると諸々インストールされた状態で利用できるという理解です。
もっと深く突っ込むと違うと思います。。。

さて、今回はSSH接続が出来るCentOS 6.xのものが欲しかったので、kinogmt/centos-sshというイメージを利用しました。

$ docker pull kinogmt/centos-ssh:latest



4.docker run

最後にコンテナを起動します。
「docker run イメージ名」でコンテナの起動は出来ますが、今回実現したいことがあります。
  • コンテナに直接SSH接続したい(他の人と共用する可能性があるのでホストの情報は晒したくありません。)
  • 何かしらWebサービスを作りたいので、80/443ポートは外部に向けて開放したい
  • NodeJSのExpress使おうかもしれないので3000ポートも開放しておきたい
ということで、オプションをつけ、下記のdocker runコマンドを実行しました。

 
docker run -i -t -v /var/docker/test/data:/var/data:rw --hostname test  -p 30300:3000 -p 30022:22 -p 30080:80   -p 30443:443 --name test kinogmt/centos-ssh:latest /usr/sbin/sshd -D 
 

◇オプションメモ。
 ・hostname : ホスト名。任意でOK
 ・p : 【ホストのポート】:【コンテナのポート】 と指定。
 ・name : 起動するコンテナ名。任意でOK

5.コンテナへSSH接続

早速、下記情報で接続できました。

サーバアドレス レンタルしているサーバのアドレス
user name root
パスワード password
ポート 30022
 注 意 !
kinogmt/centos-ssh を利用した場合、SSHの初期パスワードは上記の通り
「password」固定なのでデフォルトパスワードから変更する必要があります。

 後書き的に。。。

ホストOS上にDockerをつかって仮想環境を作成できました。
あとは同じ要領で 開発環境を増やせます。
今は既存のイメーファイルを使っていますが、そのうちDockerファイルを作ったりもしてみたいです。
あと、Dockerワークフローなるものも体験してみたいのですが、個人ではあまり機会がないかもしれません。

0 件のコメント :

コメントを投稿