VPS上にDockerをインストールして使い捨ての開発環境を用意する
Dockerをインストール
dockerをインストールする
$ sudo yum install docker
dockerを起動する
$ sudo systemctl start docker
$ sudo systemctl enable docker
ln -s '/usr/lib/systemd/system/docker.service' '/etc/systemd/system/multi-user.target.wants/docker.service'
開発用イメージを作成する
ベースイメージを取得する
$ sudo docker pull centos:centos7
作業用コンテナ(working)を起動する
$ sudo docker run -t -i --name working centos:centos7 /bin/bash
EPELリポジトリをインストールする
# yum install -y epel-release
開発ツールをグループインストールしてコンテナを終了する
# yum groupinstall -y "Development tools"
...
Complete!
# CTRL-d
開発用イメージを作成(commit)して、作業用コンテナ(working)を削除する
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7cfdecd599cb centos:centos7 "/bin/bash" 2 minutes ago Exited (0) 11 seconds ago working
$ sudo docker commit working devel:centos7
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
devel centos7 f97fe69c8935 36 seconds ago 522 MB
docker.io/centos latest fd44297e2ddb 12 days ago 215.7 MB
docker.io/centos 7 fd44297e2ddb 12 days ago 215.7 MB
docker.io/centos centos7 fd44297e2ddb 12 days ago 215.7 MB
$ sudo docker rm working
開発用イメージからNode.js開発用コンテナを起動する
接続用のポートを一時的に開ける
$ sudo firewall-cmd --add-port=3000/tcp --zone=public
$ sudo firewall-cmd --list-ports
3000/tcp
Node.js開発用コンテナを起動する
- ホスト3000番ポート と コンテナ80番ポート をバインドする
- http://ip:3000/ でアクセスできるようになる
$ sudo docker run -t -i -p 3000:80 --name nodejs devel:centos7 /bin/bash
Hello World!(app.js)
var http = require("http");
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("Hello World\n");
}).listen(80, "0.0.0.0");
nodeアプリ実行、アクセスを確認、終了
# node app.js
# CTRL-d
接続用のポートを閉じる
$ sudo firewall-cmd --remove-port=3000/tcp --zone=public