PCの中を汚したくなかったのでDockerからいれてみた
-
Docker for Macを下記URLからDLとインストール
- https://hub.docker.com/editions/community/docker-ce-desktop-mac
- インストールできたらコマンドラインで
docker
コマンドが使えるようになる
-
DB:mysql,WEBサーバ:nginxのイメージを
pull
コマンドでダウンロード- バージョンの指定もできるが今は最新版をダウンロードする
-
images
コマンドでダウンロードしたイメージの一覧が確認できる
コンソール
$ docker pull mysql
$ docker pull centos
$ docker images
- DB:mysqlの用意
- コンテナ名:mysql
- mysqlのrootパスワード: password
- 最後にコンテナの中に入って起動しているか確かめる
- コンテナの中から出たい時は
exit
コマンドで出れる
- コンテナの中から出たい時は
-
-p
オプションで転送元:転送先のポートフォワーディングができる - 新しいmysqlだと安易なアクセスを許さないようなので
--default-authentication-plugin=mysql_native_password
オプションを追加(詳細はよく把握していない)
コンソール
$ docker run -it --name mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306 mysql --default-authentication-plugin=mysql_native_password
$ docker exec -it mysql bash
- WEBサーバ:nginxの用意
- コンテナ名: mycentos
- 最後にコンテナの中に入って起動しているか確かめる
コンソール
$ docker run -it --name mycentos -d centos
$ docker exec -it mycentos bash
- centos内でnginxを下記のnginx本家の言う通りに用意する
centosの中
$ yum install yum-utils
$ vi /etc/yum.repos.d/nginx.repo
$ yum-config-manager --enable nginx-mainline
$ yum install nginx
-
/etc/yum.repos.d/nginx.repo
では新規作成して下記をコピペし保存
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
- mysqlクライアントも入れておく
centosの中
$ yum install -y mysql
- WEBサーバのコンテナのイメージ化とアップロード
-
docker ps
コマンドでCONTAINER IDを確認する - コンテナをを
commit
コマンドによりイメージ化 -
$ docker ps
コマンドでイメージ化できているか確認 - Docker Hubに
push
コマンドをしてアップロード- 1.0とか付けてるけどおそらく任意の数でいいと思う
-
コンソール
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f760e6313d6b centos "/bin/bash" 23 minutes ago Up 23 minutes mycentos
ed21f55a3fe4 mysql "docker-entrypoint.s…" 25 minutes ago Up 25 minutes 3306/tcp, 33060/tcp mysql
コンソール
$ docker commit f760e6313d6b {user名}/centos:1.0
$ docker login
$ docker push {user名}/centos:1.0
- webサーバを立ち上げる
- testappに入ってmysqlに接続できるかテスト
- 接続後mysqlへの疎通も確認
コンソール
$ docker run -it --name testapp --link mysql:mysql -d -p 8080:80 {user名}/centos:1.0
$ docker exec -it testapp bash
- 以下のように入れるはず
testappの中
$ mysql -u root -p -h $MYSQL_PORT_3306_TCP_ADDR
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.15 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
- nginxを起動してwelcomeページが表示されるかテスト
- (上記のmysqlからexitで出た後の想定)
- 下記コマンドを入力後 http://localhost:8080 にアクセスして
Welcome to nginx!
と出ればOK
$ nginx
- 以上で最低限の環境はできた