🐳

オンラインのDocker実行環境「Play with Docker」を試す

2022/07/10に公開

ふと思い立ってオンラインのDocker実行環境を探してたらPlay with Dockerを見つけました。

https://labs.play-with-docker.com/

というわけで今回はこのサイトでDockerの実行環境を構築してみました。

ログイン

DockerHubかGithubのアカウントでログインすることができます。

インスタンスを起動

ログインするとPlayground画面が表示されます。

左のメニューから ADD NEW INSTANCE をクリックして新しいインスタンスを起動することができます。

以下のようにターミナルが表示されれば準備完了です。

とりあえずコンテナを起動してみる

まずはGetting Startedのコンテナを動かしてみます。

ターミナルで以下のコマンドを実行します。

docker run -dp 80:80 docker/getting-started:pwd

実行すると以下のように開放したポート番号のリンクが表示されます。

リンクをクリックして以下のページが表示されたらコンテナは正常に動作しています。

停止するときは以下のコマンドを実行します。

docker stop $(docker ps -q)

Docker Composeを試してみる

今度はDocker Composeを使ってみましょう。

今回はDocker Composeのドキュメントで紹介しているWordpressのサンプルを動かしてみます。

https://docs.docker.jp/compose/wordpress.html

まずは以下のコマンドでdocker-compose.ymlを作成します。

touch docker-compose.yml

その後はVimなどのCLIエディタで編集すればいいですが、ここではPlaygroundで使えるエディタを試します。

EDITORボタンをクリックすると別タブでエディタが開きます。

先程作成したdocker-compose.ymlを開きます。

エディタ画面を開いたら以下の内容を書き込んで Save ボタンをクリックします。(どうやらCtrl+Sが使えないようです…)

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

先程のPlaygroundの画面に戻って以下のコマンドを実行し、コンテナを立ち上げます。

docker-compose up

Getting Startedと同様にポート番号のリンク(今回は8000番)をクリックします。

すると、別タブで以下のWordpressの初回画面が起動します。

あとは画面に沿ってアカウントを作成して以下のようにWordpressのダッシュボードが表示されたら正常です。

片付け

インスタンスは DELETE ボタンをクリックして削除します。

Playgroundは4時間で自動的にセッションが切れますが、 CLOSE SESSIONボタンをクリックするとセッションが強制的に切れます。

まとめ

今回はオンラインのDocker実行環境を試してみました。

Dockerが公式で紹介していて無料で手軽に試せるので、ちょっとしたワークショップの開発環境に導入してみるのがいいかもしれません。

ソースコードはオープンソースで公開されているのでフォークして自分でカスタマイズなってこともできますね(やるとは言ってない)

https://github.com/play-with-docker/play-with-docker

Discussion