Dockerを勉強し始めたので、学習記録としてまとめておきます。内容は基本的に
knowledge.sakura.ad.jp
のDocker入門で勉強したものを基礎としており、自分が引っかかったとことを付け足して書いています。
環境
- Ubuntu 18.04
Dockerイメージをダウンロードしてみる
まず最初に、軽量なWebサーバとして有名なNginxのDockerイメージを入れてみました。
hub.docker.com
まず、DockerHubのアカウントを作成しました。作成できたら、ここのIDとパスワードを使ってdockerでログインします。ログインをすることで、Docker Hubからイメージをpullすることができるようになります。(ログインしていない状態でpullしようとすると権限がありません、と怒られます。)
$ docker login Authenticating with existing credentials... Stored credentials invalid or expired Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: Password:
では、次にNginxのリポジトリをpullしてきます。
$ docker pull nginx Using default tag: latest latest: Pulling from library/nginx 27833a3ba0a5: Pull complete ea005e36e544: Pull complete d172c7f0578d: Pull complete Digest: sha256:e71b1bf4281f25533cf15e6e5f9be4dac74d2328152edf7ecde23abc54e16c1c Status: Downloaded newer image for nginx:latest $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 27a188018e18 12 days ago 109MB
Nginxを動かしてみる
$ docker run -d --name nginx-container -p 8181:80 nginx
このようにすることで、Dockerイメージを動かすことができます。プロセスを確認すると、
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 21f11ea7bc28 nginx "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:8181->80/tcp nginx-container
STATUSがUP、つまり現在動いていることがわかります。このとき、このプロセスが使っているのが、0.0.0.0:8181ポートであることがわかります。このポートにアクセスすれば「Welcome to nginx」のページが現れます。しかし、ファイアーウォールの設定でこのポートが閉じてしまっているときには接続がうまく行きませんので、開く必要があります。
$ sudo ufw status 状態:非アクティブ $ sudo ufw enable # ファイアウォールが有効になっていなかったので、有効にする $ sudo ufw allow 8181 $ sudo ufw reload $ sudo ufw status 状態: アクティブ To Action From -- ------ ---- 8181 ALLOW Anywhere 8181 (v6) ALLOW Anywhere (v6)
これでアクセスすれば「Welcome to nginx」のページが現れます。
Dockerを停止する
$ docker stop nginx-container

- 作者: 山田明憲
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/25
- メディア: Kindle版
- この商品を含むブログを見る