LoginSignup
0
0

More than 3 years have passed since last update.

Docker メモ

Last updated at Posted at 2018-12-09

導入してみて、詰まったところをメモします。

Dockerとは

仮想環境を簡単に作れるもの。VirtualBoxなどと比べると軽量で高速らしい。

インストール

まずは Docker Community Edition をインストール。

インストールしたら docker を起動して、ターミナルから確認

$ docker -v
Docker version 18.09.2, build 6247962

基本的な構成

ざっくりとした構成図です。

alt

DockerコンテナはDockerイメージを元に作成されます。Dockerコンテナが仮想環境です。

Dockerイメージは予めDockerHubに用意されているものを取得するか、自分で作成したDockerfile(テキストファイル)をbuildすることで作成できます。

コンテナを作ってブラウザからアクセスしてみる

まずはイメージとコンテナの確認。どちらも存在しません。

$ docker images
REPOSITORY  TAG IMAGE ID  CREATED SIZE

$ docker ps -a
CONTAINER ID  IMAGE COMMAND CREATED STATUS  PORTS NAMES

コンテナを作成。

$ docker run --name myNginx -d -p 8080:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
fc7181108d40: Pull complete 
d2e987ca2267: Pull complete 
0b760b431b11: Pull complete 
Digest: sha256:96fb261b66270b900ea5a2c17a26abbfabe95506e73c3a3c65869a6dbe83223a
Status: Downloaded newer image for nginx:latest
259abccb75f8af516fc5ff31a29cee018e28d42d654f830302d1d3c0dda4146e

再度イメージとコンテナの確認。Dockerイメージがダウンロードされて、コンテナが作成、起動されています。

$ docker images
REPOSITORY  TAG     IMAGE ID      CREATED     SIZE
nginx       latest  f68d6e55e065  4 days ago  109MB

$ docker ps
CONTAINER ID  IMAGE   COMMAND                  CREATED             STATUS                        PORTS                  NAMES
259abccb75f8  nginx   "nginx -g 'daemon of…"   58 seconds ago      Up 57 seconds                 0.0.0.0:8080->80/tcp   myNginx

ブラウザから http://localhost:8080/ にアクセスするとページが表示されます。

Welcome to nginx!
...

コンテナの動作確認

$ docker ps

コンテナの停止

$ docker stop {CONTAINER ID}

Dockerイメージや、Dockerコンテナはどんどん溜まって行くため不要であれば削除します。

コンテナの削除

$ docker rm {CONTAINER ID}

イメージの削除

$ docker rmi {IMAGE ID}

Dockerfile からの Build

ファイル名Dockerfileでファイルを作成。

FROM centos:7
RUN yum update -y 
RUN yum install -y ...
...

Dockerfileのあるディレクトリまで移動してbuildする。

$ cd {path to Dockerfile}
$ docker build 

参考


以下、未整理


DockerのIP

$ docker-machine env
$ docker-machine ip

コンテナの作成

$ docker run -it ubuntu

コンテナにアクセス

起動中のコンテナにアクセスするにはexecコマンドを使います。

コンテナの停止・削除

$ docker stop $(docker ps -q)
$ docker rm $(docker ps -q -a)

イメージの削除

$ docker rmi $(docker images -q)

docker-compose

# 起動
# -d でコンテナをデーモン化
$ docker-compose up -d

# 停止
$docker-compose down

Wordpress

docker-compose を使う

  • ./docker-compose.ymlを作成する
  version: '3.1'

  services:
    # mysql ※ 5.7はダメ(2019.06.07)
    db:
      image: mysql:5.6
      container_name: mysql
      environment:
        MYSQL_ROOT_PASSWORD: wwcom999999
        MYSQL_DATABASE: wordpress
        MYSQL_USER: wordpress
        MYSQL_PASSWORD: wordpress
    # wordpress
    wordpress:
      image: wordpress:latest 
      restart: always
      container_name: wp 
      ports:
        - "8080:80"
      depends_on:
        - db
      volumes:
        - ./var/www/html:/var/www/html
      environment:
        WORDPRESS_DB_HOST: db:3306
        WORDPRESS_DB_NAME: wordpress
        WORDPRESS_DB_USER: wordpress
        WORDPRESS_DB_PASSWORD: wordpress
  1. マウント用のディレクトリ作成

    ホストマシンからファイル編集ができるように、コンテナにマウントするためのディレクトリを作成する。

    $ mkdir -p ./var/lib/www

  2. 初期化

    $ docker-compose up -d

  3. IP の確認
    ブラウザからアクセスするために、dockerのIPを確認

    $ docker-machine ip
    192.168.99.100

  4. ブラウザから192.168.99.100:8080へアクセスする。

  • vmware toolbox の設定
    Oracle VM VirtualBoxマネージャーから以下を開く 設定 > ネットワーク > 高度 > ポートフォワーディング 以下の設定を追加する。 ホストポート:80 ゲストポート:80

その他

  • 停止 $ docker-compose stop
  • 再開 $ docker-compose start
  • 停止と削除 $ docker-compose down
  • 確認 $ docker-compose ps ## プラグイン
  • welcart )
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0