使用 Docker 高效搭建本地开发环境(详细教程)

这篇具有很好参考价值的文章主要介绍了使用 Docker 高效搭建本地开发环境(详细教程)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker本地开发环境的好处

试错

对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试。时间非常宝贵,正是得益于 Docker,让我们有可能在一条或者几条命令内就搭建完环境,而且这个环境大到一个特定版本的操作系统,小到一个软件。Docker 有一个傻瓜化的获取软件的方法,Docker后台会自动获得环境镜像并且运行环境。

统一开发和生产环境

对于一般的小公司来说,搭建一个公用的开发环境是一件不那么划算的事情。那么就可以用Docker来统一开发环境,因为不管你用的是WindowsMac 还是 Ubuntu。如果生产环境也使用的Docker的话,你甚至可以直接打包一套环境,直接丢上去就可以运行了,再也不用担心开发-生产环境之间的差异了。

高性能

虚拟机的粒度是虚拟出的机 ,而Docker的粒度则是被限制的应用 ,相比较而言 Docker 的内存占用更少,更加轻量级,性能也更优。

而秒级的启动,也可以让我们启动电脑时候,开发环境的运行是无感知的。

成果展示

我们可能经常要给用户或者是同事展示一样功能的,但是搭建演示环境的过程却是非常麻烦的。现在可以直接将我们的镜像打包丢过去,而不必去做任何环境配置的工作,同时也不必担心他们的环境配置会导致我们的产品无法运行。

安装Docker

mac平台下,就是去下载一个dmg的安装文件。下载好了之后,双击,然后拖入就可以了,windows应该也是类似的。

就是安装qq一样简单,傻瓜式的。

附上dockerhub上的下载链接:

https://hub.docker.com/search/?type=edition&offering=community&q=

成功之后属于docker version如果出来版本信息就是安装成功,类似如下

Client: Docker Engine - Community
 Version:           18.09.0
 API version:       1.39
 Go version:        go1.10.4
 Git commit:        4d60db4
 Built:             Wed Nov  7 00:47:43 2018
 OS/Arch:           darwin/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.0
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       4d60db4
  Built:            Wed Nov  7 00:55:00 2018
  OS/Arch:          linux/amd64
  Experimental:     true

 

安装docker-composer

一般来说,mac安装docker之后就会携带docker-composer

其他平台,附上下载链接:

https://github.com/docker/compose/releases

安装完成之后可以输入命令检测

➜  ~ docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0h  27 Mar 2018

 

如果没有出现版本相关信息,可以尝试再次安装

下载laradock

laradock的项目地址是https://github.com/laradock/laradock 我们找一个地方clone下来即可

我这里是在我的用户目录下面新建了一个Docker目录,然后clone了项目下来

配置env文件

  1. 拷贝example成.env

    cp env-example env
    
  2. .env文件中APP_CODE_PATH_HOST是本地路径 APP_CODE_PATH_CONTAINER是远程映射路径,看需求修改,大多数情况下是不需要的

  3. 如果有调试代码的需求,也可以将PHP_FPM_INSTALL_XDEBUGWORKSPACE_INSTALL_XDEBUG两个选项打开

  4. 如果还有其他的需求,可以在.env里面搜索,里面已经将大多数配置项都给独立出来了

运行容器

进入到laradock的工作目录下面,就是clone的项目的根目录我的工作目录就是~/Docker/laradock

然后运行如下命令

docker-compose up -d nginx mysql

就会看到在自动执行build操作,并且build完了之后自动后台启动了如下容器

  • nginx

  • php-fpm

  • workspace

  • mysql

那是因为php-fpmworkspace还有docker-in-docker是随nginx一并启动的

所以实际上

docker-compose up -d nginx mysql

docker-compose up -d nginx workspace php-fpm mysql

这两条命令的效果是一样的,可以都带上,也可以不写。

up命令在第一次启动的时候实际上就是build + start的组合,如果容器不存在,那么就build一个容器,并且启动服务,如果容器存在那么直接启动服务,大概就是这么个意思 -d的意思是后台运行

 

配置web项目

一下是我laravel项目的部分配置

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=root
......

注意,数据库主机必须得是别名才可以,如果DB_CONNECTION这个地方输入172.0.0.1或者是localhost都是会连接失败的。

在其它的项目中也必须是这样的,配置数据库链接,redis,或者MemCache链接都必须设置成具体的别名。或者你说我找到各个容器的ip,可以嘛。可以,但是并不建议这样做,因为ip是会变动的。

具体别名可以参考./docker-compose.yml文件中的设置

这个主要的技术实现应该是用了docker的虚拟网桥技术.

配置宿主机的host

因为,往往我们访问的时候,是通过宿主机上面的浏览器发送请求的,所以,配置宿主机上面的host必不可少。

vim /etc/hosts

我这里加入一条我自己设置的虚拟域名

127.0.0.1       blog.test

然后保存,刷新下host。

配置nginx

进入到./laradock/nginx/sites文件夹,然后ll一下,我们会发现,laradock已经帮我们放了好多列举的文件进来

app.conf.example default.conf laravel.conf.example symfony.conf.example

根据需求拷贝一份,然后修改一下就可以了,都不是很难,由于我们本地是laravel开发的博客项目,所以我就直接拷贝laravel.conf.example,然后使用vim打开

cp laravel.conf.example blog.conf vim blog.conf

 

打开后的内容...

server {

    listen 80;
    listen [::]:80;

    # For https
    # listen 443 ssl;
    # listen [::]:443 ssl ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name laravel.test;
    root /var/www/laravel/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;

我们会发现,如果没有特殊需求的话,这个里面大多数地方我们并不需要修改。我们只需要关注server_nameroot这两个参数,把这个里面的laravel换成我们项目名就可以了,这里我们换成blog

下面是修改后的内容

server {

    listen 80;
    listen [::]:80;

    # For https
    # listen 443 ssl;
    # listen [::]:443 ssl ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name blog.test;
    root /var/www/blog/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;

访问

输入url文章来源地址https://www.toymoban.com/news/detail-480665.html

http://blog.test/

到了这里,关于使用 Docker 高效搭建本地开发环境(详细教程)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VS Code上搭建Vue开发环境超详细教程

    这篇关于在Visual Studio Code上搭建vue开发环境的超详细教程手把手教会你! 首先在Visual Studio Code上搭建vue开发环境有几个步骤: 1、下载安装node.js 2、安装npm 3、安装cnpm 4、安装vue/cli脚手架 5、创建vue项目  6、运行vue项目   1.下载安装node.js 地址:node.js官网下载 打开 Visual Stud

    2024年02月05日
    浏览(43)
  • Android开发-Android开发环境搭建(Android Studio详细安装教程,适合新手)

    01 Android开发工具 Android Studio Android Studio是谷歌推出的一个Android集成开发工具, 基于 IntelliJ IDEA .类似Eclipse ADT, Android Studio提供了集成的Android开发工具用于开发和调试 架构组成 。基于Gradle的构建支持 。Android专属的重构和快速修复 。提示工具以捕获性能、可用性、版本兼容性

    2024年02月09日
    浏览(34)
  • Android开发-Mac Android开发环境搭建(Android Studio Mac环境详细安装教程,适合新手)...

    1.进入Android Studio官网 https://developer.android.google.cn/studio 2.点击下载Android Studio.  3.将说明拉到最下方,选择Mac With Apple Chip.苹果芯片选择Apple Chip,如果是Intel芯片可以选择Intel.  4.下载完成后,双击进入Android Studio.  点击打开.  5.如果是第一次安装,则直接选择不要导入设置.点击ok

    2024年02月04日
    浏览(31)
  • 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】

    官网地址:golang.org,因为一些原因国内可能无法访问。可以使用下面第二个链接。 国内地址访问:https://golang.google.cn/dl或者https://www.golangtc.com/download 根据自己操作系统版本,下载安装即可,目录尽量选择全英文且没有空格和其他其他特殊字符。 2.1 Windows下 GOPATH:即默认的w

    2024年02月05日
    浏览(34)
  • 使用docker搭建LNMP开发环境

    系统:ubuntu 18.04 docker版本:18.03.1-ce docker的安装请自行参考官方文档。 这篇文章用于介绍如何使用docker在ubuntu系统上搭建一个LNMP开发环境,下面我们将会编写Dockerfile,基于官方docker hub镜像,分别构建我们自己的镜像,然后运行。要构建的镜像有: PHP-FPM 7.4 Nginx 1.19 MySQL 5.

    2023年04月13日
    浏览(29)
  • Intellij IDEA下载安装教程和搭建springboot开发环境及踩坑指南(超详细图文教程)

    https://www.jetbrains.com/idea/ 大家通过上方的链接进入到Intellij idea的官网后,可以在主界面点击Download或者点击上方导航栏里面的DeveloperTools,在里面找到并点击Intellij idea,下载安装即可。 3、 Intellij idea安装指南 通过上方的官网下载完成以后,会的到一个压缩包(里面是Intellij

    2024年03月24日
    浏览(44)
  • Docker实践:使用Docker搭建个人开发环境(极简版)

    本文是在服务器 已经配置好 Docker 相关环境的情况下, 简要介绍 了在服务器上如何构建 Docker 镜像来搭建个人开发环境,因此本文 不涉及 Docker 的安装、维护以及各种细节,若要 详细了解 ,请查看文章最后的 相关资料 一节。 以下所有操作均在同一文件夹(例如 /media/user

    2024年02月16日
    浏览(30)
  • 【运维知识大神篇】运维人必学的Docker教程1(Docker安装部署+Docker镜像管理+容器管理常用命令+搭建docker的本地yum源+windows系统安装docker环境)

    本篇文章开始给大家介绍Docker,这个是我非常喜欢的一个服务,介绍给大家,希望大家也能喜欢! 目录 何为容器 Docker环境安装部署 一、yum安装(CentOS7.9) 二、rpm包安装(CentOS) 三、卸载docker环境 四、安装指定的docker版本 五、Ubuntu安装docker环境 六、使用deb安装docker 七、

    2024年01月18日
    浏览(77)
  • 【软件测试】在Windows使用Docker搭建CentOS环境(详细)

    我们做软件测试在日常工作中或多或少都会接触到 Linux 服务器。 获取 Linux 服务器的途径也有很多,比如可以通过购买云服务器(阿里云、华为云、腾讯云等)和虚拟机(VMWare、VirtualBox 等)的方式获取,除了这两种方式之外,我们还可以使用 Docker 的方式来快速搭建 Linux 环

    2024年02月11日
    浏览(36)
  • 【Docker】手把手教你使用Docker搭建kafka【详细教程】

    目录 前提条件 1.安装Zookeeper 1.1运行ZooKeeper容器 2.运行Kafka容器 2.1启动Kafka容器 3.验证 3.1进入Kafka容器 3.2查看容器状态 3.3查看容器日志 3.4重新启动容器 3.5创建测试主题 1. 安装Docker: 确保你已经在你的Windows机器上安装了Docker。你可以从Docker官方网站下载并安装Docker Desktop。

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包