使用Docker搭建本地开发环境

前段时间使用了8年的老电脑坏掉正式退役了,购买了新的电脑需要重新搭建本地开发环境。想着需要安装MySQL、Redis、Nginx、MQ、Elasticsearch等等,有时候学习新技术又需要安装其他服务。如果都在本机安装,安装起来会比较麻烦,同时电脑也会变得越来越卡,而且很多学习性的应用,学习一段时间后后面也用不到了,即使卸载后还是会有很多残留的文件需要清理。联想到公司的项目都是使用容器化部署,于是想到了Docker,我们可以将需要的应用以容器化的方式在本地启动,这样需要的时候以Docker启动,不用的时候停掉或者直接删掉也不会留下残留的文件,用起来就方便多了。

使用Docker好处:

  1. 环境隔离:Docker在Windows上可以创建独立的容器,每个容器都有自己的文件系统、运行时环境和依赖项。这意味着你可以将不同的开发环境隔离开来,避免互相干扰和冲突。例如,你可以在同一台Windows机器上同时运行多个容器,每个容器专门用于一个特定的应用程序或服务。
  2. 简化配置:通过将应用程序及其依赖项打包到Docker镜像中,你可以快速部署和配置开发环境。无需手动安装软件、配置环境变量等繁琐步骤,只需使用Dockerfile定义所需的环境设置,然后通过Docker命令构建和运行容器即可。
  3. 跨平台性:Docker是一种跨平台的容器化技术,可在不同操作系统上运行,包括Windows、Linux和macOS。这意味着你可以在Windows上构建和运行Docker容器,然后将其迁移到其他操作系统上,而无需重新配置和调整开发环境。
  4. 快速复制和共享:使用Docker,你可以轻松地复制和共享开发环境。通过将整个应用程序及其依赖项打包为一个Docker镜像,其他开发人员可以简单地拉取该镜像并在其本地环境中运行,无需再次进行配置和安装。
  5. 弹性扩展:当需要进行横向扩展时,Docker可以方便地创建多个相同的容器,并使用负载均衡等技术将流量分发到这些容器上。这使得你可以根据需求快速扩展应用程序的容量,以满足用户或业务的增长。

Docker安装

由于我使用的是Windows11家庭版的系统,所以我这边只介绍Windows的安装步骤😂

1.准备工作

安装WSL

  1. 用管理员的身份打开Windows PowerShell

    bash 复制代码
    #启动WSL
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all
    /norestart
    启动虚拟机功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    在这个安装过程中,可能会出现要你重启的情况,按照提示操作即可。

  2. 安装WSL

    下载[WSL]并安装(由于是图形化的,这里就不详细说明安装步骤了)。

3.设置默认的WSL版本

arduino 复制代码
wsl --set-default-version 2

2.安装Docker Desktop

下载Docker Desktop 并安装(由于是图形化的,这里就不详细说明安装步骤了)。

3.配置镜像源

设置国内镜像源(这里就不解释了,你懂的🤫)

点击「设置」按钮,在左侧选择「Docker Engine」,在右侧配置框中添加如下配置:

json 复制代码
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com/",
    "https://registry.docker-cn.com"
  ]

运行服务

这里以MySQL为例,简单介绍一下使用docker启动服务。

打开Windows PowerShell,输入命令

复制代码
docker pull mysql:8.0.29

等待下载安装完成即可,大概有400多M,可能需要下载几分钟。

下载完成后,输入如下命令查看

复制代码
docker images

接着我们就可以通过docker启动MySQL服务了,输入如下命令即可

css 复制代码
docker run  --name mysql  -d -p 3306:3306  mysql:8.0.29

打开Docker Desktop 可以看到MySQL服务已启动成功

当然这样我们只是简单的启动MySQL,如果想将数据持久化,方便后期迁移,我们需要将MySQL的配置及数据文件映射到宿主机中。

在Docker Desktop中将启动的容器删掉,打开Windows PowerShell 使用如下命令启动MySQL。

javascript 复制代码
docker run --restart=always --name mysql --privileged=true -d -p 3306:3306 -v D:\Docker\MySQL\conf\my.cnf:/etc/mysql/my.cnf -v D:\Docker\MySQL\logs:/logs -v D:\Docker\MySQL\data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.29

命令解析:

--restart=always: 重启docker时,自动启动MySQL

--privileged=true: 赋予容器操作权限

--name mysql:将容器名定义为mysql

-p 3306:3306 :将 windows 的 3306 端口映射到该 docker 容器的 3306 端口上(前一个 3306 是 windows的,后一个是 docker 容器的)

【-v】:就是目录挂载的意思,windows无法直接访问 docker 容器中的文件,可以使用该命令将 docker 容器中的文件映射到 windows目录中;

-v D:\Docker\MySQL\conf\my.cnf:/etc/mysql/my.cnf :将 docker 容器的配置文件,映射到 windows中的D:\Docker\MySQL\conf\my.cnf

-v D:\Docker\MySQL\logs:/logs -v D:\Docker\MySQL\data:/var/lib/mysql: 将容器的日志文件和数据文件映射到window中

-e MYSQL_ROOT_PASSWORD=123456:-e 设置 mysql 的参数,此处是设置 mysql root 用户的密码为123456;

MySQL启动好后,我们可以通过Docker Desktop查看启动的容器及日志和一些基本配置等。

到这里我们就完成了MySQL的启动,我们可以通过客户端连接MySQL进行一些操作了,连接地址127.0.0.1,端口3306,账号root,密码123456

第一次可能比较慢,熟悉了之后就非常快了,比在本地直接安装配置要快的多,而且一些软件安装配置起来非常繁琐,会浪费很多不必要的时间。还有很多开源的应用提供docker版本,掌握了这个方法后,可以很快的安装这些应用来验证和使用,用户体验直接上升一个数量级。

相关推荐
小张是铁粉1 小时前
docker学习二天之镜像操作与容器操作
学习·docker·容器
烟雨书信1 小时前
Docker文件操作、数据卷、挂载
运维·docker·容器
IT成长日记1 小时前
【Docker基础】Docker数据卷管理:docker volume prune及其参数详解
运维·docker·容器·volume·prune
这儿有一堆花1 小时前
Docker编译环境搭建与开发实战指南
运维·docker·容器
LuckyLay1 小时前
Compose 高级用法详解——AI教你学Docker
运维·docker·容器
Uluoyu1 小时前
redisSearch docker安装
运维·redis·docker·容器
IT成长日记5 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
热爱生活的猴子5 小时前
阿里云服务器正确配置 Docker 国内镜像的方法
服务器·阿里云·docker
FrankYoou9 小时前
Jenkins 与 GitLab CI/CD 的核心对比
java·docker
隆里卡那唔10 小时前
在dify中通过http请求neo4j时为什么需要将localhost变为host.docker.internal
http·docker·neo4j