程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

windows10使用docker搭建开发环境

发布于2022-08-03 18:24     阅读(1019)     评论(0)     点赞(18)     收藏(0)


window10上搭建docker开发环境,一路踩了很多坑,网络上看了各种文章,不是千篇一律照抄就是写的不详实,总是在关键点上不说明白,照着记录操作下来完全用不了,特些就自己记录一下,以后尽量少踩坑,有需要的同学拿走不谢

本地环境支持

本人机器是win10,查看本机是否开启了虚拟化
在这里插入图片描述
像我这样是没有开启虚拟化的,开启虚拟化的过程每种机器可能有一些差别,但是主要流程如下

在这里插入图片描述
开机后在控制面板\所有控制面板项\程序和功能点击启动或关闭windows功能
在这里插入图片描述
在这里插入图片描述
把Hyper-V的功能都勾选上,这样本地环境已基本ok了

安装docker

安装Docker Desktop for Windows
Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。

Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows
注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!
如果是win10家庭版本的同学可以升级为专业版(ps可以去问万能的淘宝)

下载完后是个exe安装包直接安装就可以了,安装完成之后如下图
在这里插入图片描述
如果是第一次安装,安装完成后会提示在这里插入图片描述
这是因为docker容器是只能运行在linux内核中的,win10虽然自带了WSL linux1的内核,但是当前docker需要WSL linux2的内核,没有关系,按提示的链接去下载安装就可以了,在 Windows 10 上安装适用于 Linux 的 Windows 子系统 (WSL) | Microsoft Docs文档里在很详细的安装说明,还是中文的,英文不好的同学来说还是很友好的
在这里插入图片描述
安装 完成后运行下面的命令查看docker相关版本

#代码在这里
docker --verison
docker-compose --verison
docker-machine --veriosn

提示docker-machine没有那手动安装一下就可以了,安装方法
手动安装docker-machine
Install Docker Machine | Docker Documentation

#ps:下面的命令是只能运行在git bash命令行里的
 base=https://github.com/docker/machine/releases/download/v0.16.0 \
  && mkdir -p "$HOME/bin" \
  && curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" \
  && chmod +x "$HOME/bin/docker-machine.exe"

完成后就可以了 如下图
在这里插入图片描述

安装完成后要重启docker 不然会报错,报错如下
在这里插入图片描述

docker本地运行git shell问题
在这里插入图片描述
解决方法 用cmd管理员方式运行

docker使用

安装完所后有两种方法使用docker
1:用cmd命令行的方式来运行

在这里插入代码片

2 : 使用docker程序来运行,桌面上会有docke应用程序图标在这里插入图片描述
,屏蔽右下角也会有doceker图标在这里插入图片描述,都可以进入docker管理介面**加粗样式
可以在这里管理自己的镜像和容器

本地搭建php和nginx容器

docker镜像仓库有很多php和nginx的镜像,有独立镜像也有分开的镜像,如果只是自己测试的话拉共公的镜像就可以了,但是我这边是公司统一的镜像包,为了统一开发环境,所以nginx和php是两个镜像文件,nginx容器对外提供接口,php只处理逻辑,下面记录下具体的安装流程
1.导入本地镜像

docker import php.tar php  	#导入本地镜像文件并命名为php
docker import nginx.tar nginx  	#导入本地镜像文件并命名nginx

在这里插入图片描述
创建完镜像后用镜像创建容器,有三种方法创建容器:网桥,端口映射,host,
host方式如果是动态IP的话支持不好,所以本次是采用网桥和端口映射的方式来实现的
默认情况下docker是自带了一个bridge网格,如果不配置的话就是默认在这个网桥下面
mynet和devnet是我自己创建的网桥
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021042919292883.png在这里插入图片描述

docker network list #列出所有网络信息
docker network create -d bridge devnet  #创建网桥
docker inspect devnet#查看网桥信息

在这里插入图片描述
在这里插入图片描述

查看devnet网桥可以看到网段是172.19.0.1/16,这个是docker自己分配的,当然你也可以通过subnet参数指定自己的网段,如docker network create --subnet=192.168.65.0/24 testnet就可以指定创建一个自己的网段,一般会默认第一个ip为网关,创建网段是为了把接口下来要创建的容器都放在同一个网关下,这样同一个网关下的容器就可以互相通信了

2.创建nginx容器

docker run -d -i -t --name nginx -p 80:80 –-network=devnet -v E:\project\docker\nginx\vhost:/usr/local/nginx/conf/vhost -v E:\project\docker\nginx\logs:/data/logs/nginx nginx:latest /bin/bash
#参数
--name  命令容器
--network 定义网络
-p 端口映射
-v 绑定路径

在这里插入图片描述在这里插入图片描述

3.创建php容器

docker run -d -i -t -e “APP_ENV=local” –-network=devnet --name php -v E:\project\cs\cs:/data/www/api -v E:\project\docker\php\etc:/usr/local/php/etc -v E:\project\docker\tmp-data:/data/tmp_data -v E:\project\docker\conf:/data/conf php:latest /bin/bash  
#参数
-e 设置环境变量

在这里插入图片描述
在这里插入图片描述
4.到这里,两个容器就已经全部创建完成了,查看容器
在这里插入图片描述
在这里插入图片描述
可以看到两个容器在同一个网关下,并且被分配了不同的ip, 172.19.0.2和172.19.0.3,此时两个容器是可以互相ping通的,在这里插入图片描述
注意 ping时要ping容器名或容器id,直接ping ip是不可以的,因为这个ip是虚拟的,直接ping ip会ping到外界的真实ip

nginx配置
因为nginx是独立的服务,请求php的服务需要指向容器地址,所以fastcgi的地址也要写成php容器的地址
在这里插入图片描述

php配置
因为php现在一个独立的容器,php容器需要提供的9000端口需要监听到来自nginx容器的请求,所以php-fpm.conf文件也要修改一下

在这里插入图片描述
估后启动服务

在这里插入图片描述
就可以正常访问了

原文链接:https://blog.csdn.net/ithover/article/details/116270056



所属网站分类: 技术文章 > 博客

作者:我叫你一声你敢答应吗

链接:http://www.phpheidong.com/blog/article/355664/3ed660477a4cecbc6bc1/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

18 0
收藏该文
已收藏

评论内容:(最多支持255个字符)