主要概念是 容器 和 镜像。
要先有镜像,启动镜像后,才有容器的出现。
不恰当地用类和实例来理解,镜像是类,容器是实例。
部分命令
拉取镜像docker pull {{具体镜像}}查看本机镜像docker images查看运行中的容器docker ps删除镜像docker rmi {{镜像id}}查看所有容器docker ps -a进入某个容器(exec也可以更换为attach)docker exec -it {{容器id/容器名称name}} /bin/bash退出某个容器(如果使用attach方式进入,退出后容器将会停止;而exec则不会)exit启动容器docker run [参数列表] {{容器id/容器名称name}}停止容器docker stop {{容器id/容器名称name}}删除容器docker rm {{容器id/容器名称name}}查看容器日志docker logs {{容器id/容器名称name}}
准备工作
1. 安装docker,并确保已启动2. 拉取需要的三个镜像:nginx、mysql、php
启动mysql容器
1. 需设置MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD三个中的任意一项2. ef08065b0a30 是mysql的镜像id,也可使用镜像标签
docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql -v /usr/local/mysql:/usr/local/mysql ef08065b0a30
启动php容器
1. {{mysql-container-id} 为mysql容器的id2. 62c88af9f064 是php镜像id,也可使用镜像标签
docker run -itd -p 9000:9000 --link {{mysql-container-id}}:php --name phpfpm -v /var/www:/var/www 62c88af9f064
启动 nginx容器
1. {{php-container-id}} 为php容器id2. 4037a5562b03 为nginx镜像id,也可使用镜像标签
docker run -itd -p 80:80 --link {{php-container-id}}:nginx --name nginx -v /var/www:/var/www 4037a5562b03
修改nginx容器中的配置
1. 把nginx容器中的配置文件拷贝出来docker cp {{nginx-container-id}}:/etc/nginx/conf.d/default.conf /var/2. 修改配置把配置中root的路径修改为容器中项目的目录路径把配置中fastcgi_pass中的域名修改为php容器id(或php容器名称name), 端口保留不变fastcgi_param中/scripts$fastcgi_script_name;修改为$document_root$fastcgi_script_name;3. 把修改好的配置,拷贝回nginx容器中docker cp default.conf {{nginx-container-id}}:/etc/nginx/conf.d/default.conf
检测nginx容器配置文件
1.进入nginx容器docker exec -it {{nginx容器id}} /bin/bash2. 检测配置nginx -t3. 检测通过,则重启nginxnginx -s reload4. 退出容器exit
测试页面和数据库
在php项目目录中编写测试代码,会自动映射到容器中。然后访问测试页面。