Amazon Linux 2のカーネルを使いDockerを使って開発することは出来ないものかと試してみました。
VirtualBox で Amazon Linux 2の仮想マシンを作成する
Amazon Linux 2 を仮想マシンとしてオンプレミスで実行する
上記リンクの手順に沿ってローカル環境を作ってみます。
- ローカルなのでパスワードとか適当です。
- VirtualBoxを選んだのは私が使い慣れているからです。(VirtualBox以外のイメージもリンク先にあります)
VM イメージのリンクから先からvirtualbox/amzn2-virtualbox-2017.12.0.20180222-x86_64.xfs.gpt.vdi
をダウンロードします。
2. cloud-init 設定 ISO を作成します。
とありますが、「自分Windowsだし!!」「 Linux環境よくわからんし!!」
という方のために、Linux環境がありましたので、最低限の設定を入れたものを作っておきましたので面倒な方やローカル環境でしか使わないよ、という方はこちらを使ってみてはいかがでしょうか。
seed.isoは以下の設定で作りました。
local-hostname: amazonlinux.onprem
#cloud-config
# vim:syntax=yaml
users:
# A user by the name ec2-user is created in the image by default.
- default
chpasswd:
list: |
ec2-user:local
# In the above line, do not add any spaces after 'ec2-user:'.
VirtualBoxの設定
新規作成でダウンロードしてきたイメージを設定する
作成した仮想マシンにseed.isoを設定する
SSH接続用にVirtualBox Host-Only Network
を作成する
私の場合は以下のようにつくりました。(ipconfig /allで重複が出ないIPにすること。重複すると固定IPに出来なかった。)
作成したVirtualBox Host-Only Network
をネットワークのアダプター2に設定する
仮想マシン内の設定
仮想マシンを起動してログインする
user: ec2-user
pass: local
rootになる
$ sudo su
日本語キーボードにする
# localectl set-keymap jp106
パスワードでのSSH接続を許可する
# vi /etc/ssh/sshd_config
- PasswordAuthentication no
+ PasswordAuthentication yes
eth1の設定を作成する
今回作成したVirtualBox Host-Only Network
の設定を参考に設定ファイルを作成する。
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.56.100
NETMASK=255.255.255.0
NETWORK=192.168.56.1
再起動を行う
# reboot
PuTTYでSSH接続を行う
IPアドレス
192.168.56.100
ポート
22
ユーザー
ec2-user
パスワード
local
rootになる
$ sudo su
ロケール設定
# localedef -f UTF-8 -i ja_JP ja_JP.utf8
# sed -i -e 's/.*/LANG=ja_JP.utf8/' /etc/locale.conf
# mv /etc/localtime /etc/localtime.origin
# cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
終わり
# uname -r
4.9.81-44.57.amzn2.x86_64
以降は
共有フォルダを作成して、
ホストからゲストにマウントして、
それをdockerにマウントしたりして、
開発環境の出来上がりです。
※dockerのインストールはyumでは出来ないようなのでamazon-linux-extrasを使います。