安装docker
前提条件
Docker 要求 Ubuntu 系统的内核版本高于 3.10 通过 uname -r 命令查看你当前的内核版本
ubuntu镜像下载地址
本人下载的是ubuntu-16.04.5-desktop-amd64.iso 用VMware workstation15 安装的
安装
- 执行指令 apt install docker.io
- 安装完成后执行 docker -v 能看到版本号说明安装成功
- docker的文件目录在# ls /var/lib/docker
- 安装镜像,指令: docker pull {image_name}
因为天朝墙的原因,拉取镜像时会报错:
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/nginx/images. You may want to check your internet connection or if you are behind a proxy.
解决方法:
DaoCloud 推出DaoCloud 加速器 ,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,并得到了 Docker 官方的大力推荐。
注册道客云账号,查看并运行你的加速器代码
#curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://你的地址.m.daocloud.io
#service docker restart
- 依次安装nginx和php-fpm
docker pull nginx
docker pull php:7.1.0-fpm
#docker images 查看已安装的所有镜像
- 建立相关目录
mkdir -p /home/docker/www 主机网站根目录
mkdir -p /home/docker/nginx/conf.d 主机nginx配置文件目录
- 运行php和nginx
# docker run -p 80:80 --name mynginx -v /home/docker/nginx/conf.d:/etc/nginx/conf.d -v /home/docker/www:/usr/share/nginx/html --privileged=true -d nginx
# docker run -p 9000:9000 --name myphp -v /home/docker/www/:/var/www/html/ --privileged=true -d php:7.1.0-fpm
run 指令参数:
-p: 端口映射,格式为:主机(宿主)端口:容器端口
--name="xxx" 为容器指定一个名称;
-v /xxx:/yyy 主机的目录 /xxx 映射到容器的/yyy
--privileged=true 以特权方式启动容器
-d 后台运行容器,并返回容器ID;
- 创建nginx配置文件
查看myphp在docker中的IP,我的是172.17.0.2,配置nginx时会用到
# docker inspect --format='{{.NetworkSettings.IPAddress}}' myphp
编辑nginx配置文件
#vim /home/docker/nginx/conf.d/default.conf
server {
listen 80 default_server;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.html index.htm index.php;
}
location ~ \.php(.*)$ {
root /var/www/html/;
fastcgi_pass 172.17.0.2:9000; #172.17.0.2是刚才用指令查询出来的IP
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
- 测试是否配置成功
#echo <?php phpinfo(); > /home/docker/www/info.php
访问http://192.168.1.65/info.php
192.168.1.65是docker所在主机IP地址
docker 常用指令
# docker ps 查看容器运行的列表
# docker ps -a 查看所有容器列表
# docker images 查看所有镜像
# docker pull <镜像名> 拉取镜像
# docker stop <container_id|names> 停止某个容器
# docker start <container_id|names> 启动某个容器
# docker restart <container_id|names> 重启某个容器
# docker rm <container_id|names> 删除已停止的容器
# docker rm <container_id|names> -f 删除运行中的容器
# docker stats 查看docker内存占用等运行状态
# docker exec -it <container_id|names> /bin/bash 在容器中开启一个交互模式的终端,exit退出