導入してみて、詰まったところをメモします。
Dockerとは
仮想環境を簡単に作れるもの。VirtualBoxなどと比べると軽量で高速らしい。
インストール
まずは Docker Community Edition をインストール。
- Install Docker Desktop for Mac
-
Install Docker Desktop for Windows
-
Docker Toolbox overview
Windows10 Home Edition では、toolboxも必要でした。
-
Docker Toolbox overview
インストールしたら docker を起動して、ターミナルから確認
$ docker -v
Docker version 18.09.2, build 6247962
基本的な構成
ざっくりとした構成図です。
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
-
マウント用のディレクトリ作成
ホストマシンからファイル編集ができるように、コンテナにマウントするためのディレクトリを作成する。$ mkdir -p ./var/lib/www
-
初期化
$ docker-compose up -d
-
IP の確認
ブラウザからアクセスするために、dockerのIPを確認$ docker-machine ip 192.168.99.100
-
ブラウザから
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
)