通过 Makefile 享受使用 docker 命令的乐趣!
目录
你好!
我是Beyond大阪事务所的拉面大王Hide。
这是我的第一篇文章所以我真的很紧张(汗)
写这篇文章的契机是在我找工作的时候。
当我找工作时,我已经使用 Vagrant 建立了一个开发环境来创建作品集,但是
PC 规格很糟糕......它非常慢......这是最糟糕的环境。
我发现了现在在互联网和SNS上流行的Docker的存在,并尝试准备它,但
当时我真正的感受是……“Docker命令真的又长又乏味……” (TДT)
真遗憾,因为它运行得非常顺利......
当我输入各种选项时,就变成了20多个字符,每次都要不停地输入,非常繁琐。而且
当命令这么长时,我经常会出现错别字,这让我倍感沮丧。
读到这里的每个人可能都有同样的经历(・`ω・´) Kiri
那么让我们来看看如何只用几个字符来运行 docker 命令!
什么是码头工人?
首先你知道docker是什么吗?
“肯定是关于容器技术的! ”
“是鲸鱼!
” `` `它的工作原理非常轻巧,对吗? ”
以上所有内容都是正确的。
Docker是一个极其轻量级的平台,利用容器虚拟化技术
来快速运行程序。
我想光凭这个你是理解不了的,我们仔细看看吧 m9(´∀`●) 太好了!!
虚拟机管理程序虚拟化和容器虚拟化之间的区别
在解释 docker 时,经常会比较两种虚拟化技术。
它们是虚拟机管理程序虚拟化和容器虚拟化,Docker 使用的是后者虚拟化。
首先,要解释两者的区别,我们需要了解hypervisor和docker引擎。
管理程序
虚拟机管理程序在主机操作系统和 VM(虚拟机)之间工作,
模拟和控制 VM 使用的 CPU 和内存等硬件。
这样,您可以在主机操作系统上创建您选择的多个来宾操作系统,并且
主机操作系统和来宾操作系统是隔离的。
然而,使用多个操作系统意味着使用多个内核,这
会产生开销并增加处理时间,从而导致启动和创建虚拟机非常耗时。
Docker引擎
Docker Engine控制docker的创建、启动、终止、删除等。
您可以通过安装常驻 Docker 客户端(例如 Docker Desktop)来使用它。
与虚拟机管理程序不同,Docker 引擎不会创建客户操作系统并
与主机操作系统共享内核,因此它的开销更少,并且速度极快且轻量级。
虽然docker看起来有很多优点,但它的缺点之一就是命令很长。
具体来说,我有时会输入如下所示的长命令......
docker-compose exec db bash -c 'mysql -u root -psecret'
什么是制作工具?
这个 Make 工具将您从有时需要如此长命令的 docker 命令中解放出来。
至于哪有那么容易……
docker-compose exec db bash -c 'mysql -u root -psecret'
这个命令
制作mysql
你可以用这个命令来运行它ヽ(´∀`*)ノ
这个make工具原本是
一个可以让你轻松构建用C和C++等编译型编程语言编写的程序的工具。
但您也可以使用它来缩写命令,如上所示! !
现在,让我们安装它! !
安装制作工具
⚠对于Mac用户,它默认安装在终端中,所以对于Windows用户,请看一下。
单击[完整包,除了源]下的安装程序来安装安装程序。
单击[下一步]并根据安装程序说明进行安装。
设置您的 Windows 环境,以便可以在任何地方使用 Make
进入控制面板⇛系统和安全⇛系统,点击【高级系统设置】
单击[环境变量...]。
您可以选择将设置设置为用户环境变量还是系统环境变量。
如果变量列表中已经设置了“Path”,请参见①;如果没有设置,请参见②。
① 添加到“Path”变量
从变量列表中选择“Path”,然后单击“编辑”。
双击空白栏,粘贴下面的绝对路径,然后按【确定】按钮完成设置!
C:\Program Files (x86)\GnuWin32\bin
② 添加新的“Path”变量
点击【新建】,如图所示输入以下变量名和变量值,然后
按【确定】按钮完成设置!
在Power shell中输入“make”后,如果如下所示,则设置完成!
PS C:\Users\beyond_tokuhara>make make: *** 未指定目标且未找到 makefile。
什么是Makefile?
现在你可以安装Make了。
但是,你不能只安装它就省略docker命令。
您需要创建一个 Makefile 来省略它。
编译、管理依赖关系等
规则的文件
根据规则执行处理。
现在我们就来看看怎么写吧!
描述方法非常简单。
你可以按照以下4步来写! !
① 输入要在 make 命令中设置的参数。
② 进行换行。
③对于Windows用户,按Tab键;对于Mac用户,按→|键。
④编写docker命令。
mysql: docker-compose exec db bash -c 'mysql -u root -psecret'
⚠如果文件是UTF-8且有BOM,打开空格运行会出现如下错误。
请按Tab键创建一个空格,而不是空格键
make mysql makefile:5: *** 缺少分隔符。
输入制作命令
现在一切准备就绪,让我们输入命令吧!
如果像下面这样就成功了ヽ(*·ᗜ·)ノヽ(·ᗜ·*)ノ高触感!
PS C:\Users\beyond_tokuhara>make mysql docker-compose exec db bash -c 'mysql -u root -psecret' 欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 为 14 服务器版本:8.0 .21 MySQL 社区服务器 - GPL 版权所有 (c) 2000、2020,Oracle 和/或其附属公司保留所有权利。Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。输入“help;”或“\h”以获取帮助,输入“\c”以清除当前输入语句。
⚠注意
- 如果当前目录下没有 Makfile,则省略 docker 命令将无法执行。
・如果使用 make -f 指定,则可以在任何地方使用指定的 Makfile,但
如果在 docker-compose.yml 和 docker-compose.yaml 所在目录的上一级目录中运行 Make 命令,
PS C:\Users>make -f \Users\beyond_tokuhara\Makefile sql docker-compose exec db bash -c 'mysql -u root -psecret' 错误:在此目录或任何父目录中找不到合适的配置文件。你在正确的目录中吗?支持的文件名:docker-compose.yml,docker-compose.yaml make:*** [sql]错误1
概括
你怎么认为?
太简单了!
我想我只需几个字符就可以执行 docker 命令(-`ω-)哇!
此外,您还可以通过执行以下操作来使用 artisan 命令!
种子: docker-compose exec app php artisan db:seed
与别名相比,Makefile 非常方便,因为它们对环境的依赖较小,
只需共享文件即可使用。
无论如何,请大家用Makefile享受舒适的Docker生活。
感谢您阅读这篇文章!