概要
レンタルしている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 -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 件のコメント :
コメントを投稿