搭建
环境介绍
操作系统
Ubuntu 16.04 LTS
docker版本
Docker version 17.05.0-ce
项目结构参考
这里先给出项目结构参考树形图,有的内容是在搭建中产生的,故仅供参考,与后文内容结合看。
sail@codeBetter:~$ tree www -L 1
www
├── default.conf
├── Dockerfile
├── html
├── mysql
├── php.ini
└── www.conf
sail@codeBetter:~$ tree www -L 2
www
├── default.conf
├── Dockerfile
├── html
│ ├── coalball
│ ├── index.html
│ ├── index.php
│ └── mysql.php
├── mysql
│ ├── auto.cnf
│ ├── ca-key.pem
│ ├── ca.pem
│ ├── client-cert.pem
│ ├── client-key.pem
│ ├── coalball
│ ├── coalball.sql
│ ├── ib_buffer_pool
│ ├── ibdata1
│ ├── ib_logfile0
│ ├── ib_logfile1
│ ├── ibtmp1
│ ├── mysql
│ ├── performance_schema
│ ├── private_key.pem
│ ├── public_key.pem
│ ├── server-cert.pem
│ ├── server-key.pem
│ ├── sys
│ └── test_db
├── php.ini
└── www.conf
### 去掉一些无关内容
www
├── default.conf
├── Dockerfile
├── html
│ ├── coalball
│ ├── index.html
│ ├── index.php
│ └── mysql.php
├── mysql
│ ├── coalball.sql
├── php.ini
└── www.conf
MySQL
从 Dockerhub拉取 MySQL 镜像:
$ docker pull mysql
实例容器,启动数据库
$ docker run -p 3306:3306 --name mysql -v ~/www/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d --privileged=true mysql
### 命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v ~/www/mysql/:/var/lib/mysql:将主机当前用户目录下的mysql文件夹挂载到容器的/var/lib/mysql 下,在mysql容器中产生的数据就会保存在本机mysql目录下
-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码
-d 后台运行容器
--name 给容器指定别名
--privileged=true 可能会碰到权限问题,需要加参数
Nginx
从 Dockerhub拉取 Nginx 镜像:
$ docker pull nginx
实例容器,启动Nginx
$ docker run --name nginx -p 80:80 -d nginx
运行成功后,终端会返回容器的ID号,上面的命令中,
run:创建一个新的容器
--name:指定容器的名称(如果留空,docker会自动分配一个名称)
-p:导出容器端口到本地服务器,格式:-p :。在本例中,我