2015年1月23日金曜日

Docker上にSSH接続できるコンテナを作成する

Docker上にSSH接続ができるコンテナを作成する手順を記載する。
コンテナOSにはUbuntuを使用している。

まずコンテナを立ち上げてコンソールに接続する

$ docker run --name コンテナ名 -i -t ubuntu /bin/bash
--nameでは適当なコンテナ名を設定する

コンテナにSSHサーバ機能をインストールする

# apt-get install openssh-server
openssh-serverを使ってみた。

接続元となる端末でSSH鍵を作成する

Windows8.1上でPuTTYを使用して作成した。
鍵作成にはputtygen.exeを使用する。
"C:\Program Files (x86)\WinSCP\PuTTY"からputtygen.exeを起動する。
「generate」を押して鍵を作成し「公開鍵(public key)」と「秘密鍵(private key)」を保存する。


















コンテナに作成した公開鍵(public key)を登録する

.sshディレクトリを作成し、authorized_keysファイルを作成し公開鍵の文字列を記載する
# mkdir ~/.ssh
# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAn・・・・・・・・・・・・・・・・
ssh-rsa以降の文字列は公開鍵ファイルの文字列を記載する
今回はrootユーザ向けの設定。

Ubuntuコンテナをイメージとして保存する

docker上でイメージ作成コマンドを実行する
$ docker commit コンテナ名 イメージ名
適当なイメージ名を設定する。(コンテナ名はこれまでの手順で作成したものを設定)

作成したイメージを立ち上げる

$ docker run -d --name コンテナ名 -p XXXX:22 イメージ名 /usr/sbin/sshd -D
適当なコンテナ名を設定する。(イメージ名は上記の手順で作成したものを設定)
XXXXには他で使用していない適当なポート番号を設定する。

立ち上げたコンテナにSSH接続する

PuTTY Configurationの「Session」でHost Name(or IP address)にDockerサーバのIPアドレスを指定する。
Port番号は22から上記で設定したものに変更する。


















「Conection」→「SSH」→「Auth」でPrivate key file for authenticationに秘密鍵ファイルを設定する。


















「Open」をクリックするとコンテナにSSH接続できる。

2015年1月11日日曜日

VirtualBoxを使ったVagrant環境の構築

開発環境構築に使用される「Vagrant」の環境を構築してみた。

環境

Vagrantインストール環境:Windows8.1
Vagrantのバージョン:Vagrant1.3.5.msi
VirtualBoxのバージョン:4.3.20 for Windows hosts

VirtualBoxのインストール

デフォルト設定でインストールする

Vagrantのインストール

こちらもデフォルト設定でインストールする
インストール後、再起動が要求されるためOS再起動を行う

環境変数の設定

環境変数を設定しVagrantからVirtualBoxを呼び出せるようにする
「システムのプロパティ」➡「詳細設定」タブ➡「環境変数」でシステム変数の編集で
変数名:VBOX_MSI_INSTALL_PATH
編集値:C:\Program Files\Oracle\VirtualBox\








変数名:VBOX_INSTALL_PATH
編集値:%VBOX_MSI_INSTALL_PATH%









VagrantでVMイメージをダウンロードする

コマンドプロンプトからvagrantコマンドでubuntuのOSイメージをダウンロードする
vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

VagrantでVMを初期化する

コマンドプロンプトからvagrantコマンドでVMを初期化する
vagrant init ubuntu14.04

VagrantでVMを起動する

vagrant up

表示されたポートにsshでアクセスできるようになります。