一:环境
环境ubuntu 16.10 64位
安装docker : 方法1: sudo apt-get update sudo apt-get install docker-engine 方法2:菜鸟教程ubuntu安装docker: http://www.runoob.com/docker/ubuntu-docker-install.html
安装完成启动docker:
sudo service docker start
二:下载镜像
下载镜像地址: docker官网: https://hub.docker.com/ 阿里云开发者平台: https://dev.aliyun.com/search.html 腾讯云: 或者用命令来搜索sudo docker search [IMAGE]
IMAGE: 搜索的镜像名称
下载镜像:
拉镜像命令:sudo docker pull [author/image] 查看镜像列表命令: sudo docker images删除镜像: sudo docker rmi [IMAGE ID]
下载php-fpm镜像:sudo docker pull php:7.0.18-fpm
下载nginx镜像:sudo docker pull nginx
下载mysql镜像:sudo docker pull mysql
查看镜像列表:
三:生成容器
php生成容器:
sudo docker run --name php-fpm -it -p 9000:9000 -v /url/local/www:/url/local/www -d php:7.0.18-fpm
下面是用到的docker run 命令的解释,详细请查询docker run命令详细文档:
--name:给容器取一个别名,之后会用到,如果不写会默认生成一个,建议写上
-p:端口,把容器的端口映射到主机的端口上
-v:把主机的工作目录目录映射到容器的工作目录上
-d:后台运行容器,并返回容器ID
nginx生成镜像
1.生成镜像之前先配置一个nginx的配置文件一般默认目录在 /etc/nginx/conf.d下,默认文件是default.conf
server {
listen 80; server_name localhost;root /usr/local/www/ci;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404; if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=/$1 last; }}
location ~ \.php$ {
fastcgi_pass php-fpm:9000; // 注1 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/ci/$fastcgi_script_name; //注2 include fastcgi_params;}
location ~ /\.ht {
deny all; }}
注释1:php-fpm:9000的php-fpm 是你生成PHP容器的时候自定义的名字,如果没有自定义容器名字,打开容器列表查看
查看容器运行的列表:sudo docker ps
查看所有容器列表:sudo docker ps -a
注释2:/usr/local/www/ci/,这里这个路径是和你上面的php项目路径保持一致
2.配置好以后生成nginx容器,并挂载php容器 sudo docker run --name nginx -p 80:80 --link php-fpm:php-fpm -v /usr/local/www/ci:/usr/local/www/ci -v /etc/nginx/conf.d:/etc/nginx/conf.d -d nginx 注:你的项目路径和你配置文件项目地址要和容器中映射的地址保持一致; 3.生成mysql容器: sudo docker run --name mysql_server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql注:必须指定一个数据库密码,不然无法启动
4.查看docker 容器
四:对容器操作
进入容器:sudo docker exec -it [CONTAINER ID] /bin/bash