例えばwordpressの自作テーマを作ってみたいとなった時、Local by wheelなどを使ってローカル環境で試す方法の他に、AWSやGCPなどのクラウド環境で簡単に環境を構築する方法があります。
AWSのアカウントは持っていて、ssh接続まではできることを前提として、「10分でDockerにwordpress環境を構築する」方法をご紹介いたします。
EC2インスタンスは1年間無料枠のamazon-linux2のt2microを使います。
sshでログインしました。
次にlinuxをアップデートします。
sudo yum update
dockerをEC2にインストールします。
sudo amazon-linux-extras install docker
dockerのサービスを開始します。
sudo service docker start
このままだとpermission errorとなるので、以下のように打って、デフォルトのユーザー(ec2-user)でdockerコマンドが扱えるようにします。
sudo usermod -a -G docker ec2-user
一旦EC2インスタンスからログアウトし、再度ログインしなおします。
画像のように、以下のコマンドでDocker Hubにログインします。
docker login
Docker Hubのログイン情報を聞かれますので、入力してEnterを押してください。(ログイン情報はメールアドレスではなく、登録したユーザー名とパスワードです。)
ログインに成功すると、"Login Succeeded"と表示され、ログインに成功したことが確認できます。
ここからDocker Hubで公開されているWordpress、MySQLのイメージからpullしていきます。次のようにコマンドを打って下さい。(wordpressとmysqlのバージョンを以下のように指定しないと、エラーが出ることがあります。)
docker pull wordpress:4.9.1
docker pull mysql:5.7.25
次にdockerのコンテナを作成していきます。
docker run --name mysql_test1 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7.25
docker run --name wordpress_test1 --link mysql_test1:mysql -d -p 8080:80 wordpress:4.9.1
上記実行すると、ハッシュ値と呼ばれるランダムな数字が表示され、完了します。
dockerのコンテナの状態を確認してみましょう。
docker container ls -a
このように"STATUS "の箇所が"Up ~"となっていれば成功です。
このままだと8080ポートにアクセスできませんので、AWSのコンソールから8080ポートを開放します。
「セキュリティーグループ」の"launch-wizard15"をクリックして「インバウンドルールの編集」からポート8080、ソースは0.0.0.0/0を追加し、「ルールの追加」を実行します。
ここまで完了したら、ポート番号8080をつけてアクセスします。(この例だと、ec2-13-231-182-41.ap-northeast-1.compute.amazonaws.com:8080にあくせすすることになります。)
以下の画面が表示されたら成功です!