首先先去官网下载几百兆的docker,然后重启电脑

  1. 设置下setting-network-dns server(选fix)// 要不拉镜像很慢
  2. 重要:当安装docker时候要修改你的host,请允许,谢谢!!
  3. setting-share Drives // 这样才可以映射我的磁盘到容器里面
  4. docker存储路径:C:\Users\Public\Documents\Hyper-V\Virtual hard disks // 这玩意用着用着就很大了
  5. Connection refuse==》其实就是我的mysql的IP变了,然后.env需要改
  6. 报error就是php的ip变了,需要去nginx那改一下
  7. mysql修改了/usr/my.cnf里面的一个东西需要重启docker
  8. driver failed programming external connectivity on endpoint=》重启下,如果重启报错,重启下docker就好了

右击switch to linux

docker version	// 查看docker版本

上面可以的话说明docker安装好了

先拉mysql

docker pull mysql:5.6 // 拉取镜像

完了后可以docker images看一下刚拉的(莫名想到蹲坑。。)

docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --privileged=true --name mysql_try 11111  // mysql_try=起的名字  111111=镜像id

一些基本操作

然后docker ps查看正在运行容器,docker ps -a查看所有容器,docker exec -it 111111 /bin/bash进入容器
因为是ubuntu系统,初次进入需要执行apt-get update

apt-get install -y vim // 安装vim
apt-get install -y net-tools // 安装ifconfig
apt-get install procps // 安装ps查看进程的

可以自己执行mysql -uroot -p查看一下,完了按ctrl+p+q不关闭后台退出

再拉php

docker pull php:7.2-fpm    // 就这个嘛
docker run -dit -v D:\phpstudy\PHPTutorial\WWW:/var/www/html --privileged=true -p 9000:9000 --link mysql_try:mysql --name php_7.2 0be748e55df6
// 因为是win电脑,我就先把这个数据卷目录对应到我的www那边,以防有多个项目
docker exec -it 33f6aa414a21 /bin/bash // 进入
docker-php-ext-install pdo_mysql
cp /usr/local/etc/php/php.ini-development  /usr/local/etc/php/php.ini //这样最后看下phpinfo那的PDO drivers有没有mysql,sqlite,不然要报could not find driver报错
vim /usr/local/etc/php-fpm.d/www.conf	// 修改下配置文件,127.0.0.1:9000改成0.0.0.0:9000   允许所有连接
docker-php-ext-install pdo_mysql	// 安装下mysql的扩展
// 顺便ifconfig看下inet地址记录下172.17.0.3,nginx那要用

最后拉nginx

docker pull nginx:1.15.12
docker run -d -p 80:80 --name nginx_1.15 -v D:\phpstudy\PHPTutorial\WWW:/var/www/html --link php_7.2:0be748e55df6 123123// 前面两个都是镜像id
vim /etc/nginx/conf.d/default.conf // 修改配置文件,如下图

docker 配置后台运行 docker 运行项目_mysql


好了就重启下php和nginx

docker stop 123123
docker start 123123

然后在自己电脑访问地址jtxt2.com/xxx/xxx就是自己写的端口,基本ok了

php容器里安装redis

设置bind:0.0.0.0
protected-mode no // 关闭安全模式
就是现在每次启动容器redis不启动,要自己去启动下~

遇到各种问题

  • 之前启动容器报端口冲突,参考这个博客虽然退了phpstudy但是我的nginx还一直在运行,就是去任务管理器-详细信息and进程-关闭
  • 报错SQLSTATE[HY000][2000] No such file or directory,其实就是去我的项目里面把mysql的域名改成172.17.0.2

docker基本操作

• docker logs --since 30m 33f6aa414a21 // 查看容器最近30分钟日志
• docker start 1232132132 // 重启已经启动过的容器
• docker exec -it 33f6aa414a21 /bin/bash 再次进入容器
• docker attach e350e3a8681a
• docker inspect 465446
• docker rmi -f 6452313 //删除镜像
• docker restart