1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker for Macで開発環境(DBとWEBサーバ)を用意した記録

Last updated at Posted at 2019-02-11

PCの中を汚したくなかったのでDockerからいれてみた

  • Docker for Macを下記URLからDLとインストール

  • 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の中
$ 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
  • 以上で最低限の環境はできた

参考

1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?