使用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版本,掌握了这个方法后,可以很快的安装这些应用来验证和使用,用户体验直接上升一个数量级。

相关推荐
南猿北者6 小时前
docker Network(网络)
网络·docker·容器
sam-1237 小时前
k8s上部署redis高可用集群
redis·docker·k8s
Fanstay9858 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
death bell9 小时前
Docker基础概念
运维·docker·容器
天幕繁星11 小时前
docker desktop es windows解决vm.max_map_count [65530] is too low 问题
windows·elasticsearch·docker·docker desktop
想学习java初学者12 小时前
Docker Compose部署Kafka(非Zookeeper)
docker·容器·kafka
尝尝你的优乐美12 小时前
Docker部署Vue项目原来可以那么好用
前端·nginx·docker
迷茫运维路13 小时前
docker搭建Jenkins2.346.3版本及常用工具集成配置(ldap、maven、ansible、npm等)
运维·docker·jenkins·cicd
我叫乐多你养我啊13 小时前
Windows远程连接Docker服务
笔记·docker
mit6.82416 小时前
[Docker#5] 镜像仓库 | 命令 | 实验:搭建Nginx | 创建私有仓库
linux·后端·docker·云原生