Skip to content

01 Docker 课程介绍 ​

在 Linux 上部署一个单体项目的麻烦:

  • 命令太多了,记不住
  • 软件安装包名字复杂,不知道去哪里找
  • 安装和部署步骤复杂,容易出错

由于每台服务器的运行环境不同,你写好的安装流程、部署脚本并不一定在每个服务器都能正常运行,经常会出错。这就给系统的部署运维带来了很多困难。Docker 的出现,就是为了解决这些问题。

Docker overview | Docker Docs

  • Docker is an open platform for developing, publishing, and running applications.
    • Docker 是一个用于开发、发布和运行应用程序的开放平台。
  • Docker enables you to decouple applications from infrastructure so you can deliver software quickly.
    • Docker 使您能够将应用程序与基础设施分离,以便您可以快速交付软件。
  • With Docker, you can manage your infrastructure just like your applications.
    • 借助 Docker,您可以像管理应用程序一样管理基础设施。
  • By leveraging Docker's approach to shipping, testing, and deploying code, you can significantly reduce the latency between writing your code and running it in production.
    • 通过利用 Docker 的方法来传送、测试和部署代码,您可以显着减少编写代码和在生产中运行代码之间的延迟。

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

  • Docker 是用 Go 编写的,它利用 Linux 内核的一些特性来实现其功能。
  • Docker 使用一种名为 namespaces 的技术来提供称为容器的隔离工作区。
  • 当你运行一个容器时,Docker 会为该容器创建一组命名空间。
  • 这些命名空间提供了一层隔离层。容器的每个方面都在单独的命名空间中运行,其访问权限仅限于该命名空间。

学习目标 ​

  • 能利用 Docker 部署常见软件
  • 能利用 Docker 打包并部署 Java 应用
  • 理解 Docker 数据卷的基本作用
  • 能看懂 Docker Compose 文件

准备 Linux 环境 ​

首先,我们要准备一个 Linux 的系统,成本最低的方式就是在本地安装一台虚拟机。为了统一学习环境,不管是使用 MacOS 还是 Windows 系统的同学,都建议安装一台虚拟机。

安装 VMware ​

windows 采用 VMware Workstation,Mac 则采用 VMware Fusion。

WARNING

特别注意,Windows10 以上版本操作系统需要下载安装 VMware Workstation Pro 16 及以上版本,安装方式此处略。

powershell
> scoop search vmware
'breathe' bucket:
  vmware-horizon-client-np (2209-8.7.0-20649873)
  vmware-workstation-player-np (17.0.0-20800274)

'meta' bucket:
  vmware-workstation-pro-10 (10.0.7.2844087)
  vmware-workstation-pro-12 (12.5.9.7535481)
  vmware-workstation-pro-14 (14.1.8.14921873)
  vmware-workstation-pro-15 (15.5.7.17171714)
  vmware-workstation-pro-16 (16.2.5.20904516)
  vmware-workstation-pro-17 (17.5.0.22583795)
  vmware-workstation-pro (17.5.0.22583795)

 $ scoop install vmware-workstation-pro

创建虚拟机 ​

安装 CentOS7 ​

设置虚拟机快照 ​

在虚拟机安装完成后,最好立刻设置一个快照,这样一旦将来虚拟机出现问题,可以快速恢复。

  1. 我们先停止虚拟机,点击 VMware 顶部菜单中的 暂停下拉选框,选择 关闭客户机;
  2. 点击 VMware 菜单中的 🔧 按钮;
  3. 在弹出的快照管理窗口中,点击拍摄快照,填写新的快照信息;
    • 名称:初始化
    • 描述:刚刚完成安装
  4. 点击拍摄快照。

TIP

我们可以在不同阶段拍摄多个不同快照作为备份,方便后期恢复数据。

恢复快照 ​

假如以后虚拟机文件受损,需要恢复到初识状态的话,可以选中要恢复的快照,点击转到即可。

  1. 点击 VMware 菜单中的 🔧 按钮打开快照管理器;
  2. 选中要恢复的快照,点击转到。

SSH 客户端 ​

在 VMware 界面中操作虚拟机非常不友好,所以一般推荐使用专门的 SSH 客户端。市面上常见的有:

  • Xshell:个人免费,商业收费,之前爆出过有隐藏后门。不推荐
  • Finshell:基础功能免费,高级功能收费,基于 Java,内存占用较高(在 1 个 G 左右)。不推荐
  • MobarXterm:基础功能免费、高级功能收费。开源、功能强大、内存占用低(只有 10m 左右),但是界面不太漂亮。推荐使用
    • 官方版本为英文版本。
    • 汉化版使用:英文版本也不是啥门槛,刚开始习惯中文,慢慢的用久了就可以全英文版本了。没必要为了中文或则好看而忽视了安全你问题。Mobaxterm 毕竟是远程连接的工具,处于安全考虑还是建议自己去翻译比较稳妥。(当然如果你不在意安全问题可以随意~~),有些汉化版中有后门,所以安全问题还是重视点。汉化教程:Mobaxterm 全版本汉化教程

安装 MobarXterm ​

  • 这里我们会选择内存占用较低的 MobarXterm 作为 SSH 客户端。
  • 官网:MobaXterm free Xserver and tabbed SSH client for Windows
  • MobaXterm 分两种模式:
    • 便携式:适合安装在 U 盘,双击即可运行,这样服务器账号密码什么的就很方便的管理了,出门在外只需要一个 U 盘就可以连接服务器。
    • 安装式:普通安装,正常的 install 安装步骤。
powershell
$ scoop install mobaxterm
Installing 'mobaxterm' (23.4) [64bit] from breathe bucket
Starting download with aria2 ...
wnload: Download Results:
Download: gid   |stat|avg speed  |path/URI
Download: ======+====+===========+=======================================================
Download: 13f9d3|OK  |   5.4MiB/s|D:/scoop/cache/mobaxterm#23.4#https_download.mobatek.net_2342023101450418_MobaXterm_Portable_v23.4.zip
Download: Status Legend:
Download: (OK):download completed.
Checking hash of MobaXterm_Portable_v23.4.zip ... ok.
Extracting MobaXterm_Portable_v23.4.zip ... done.
Running pre_install script...
Linking D:\scoop\apps\mobaxterm\current => D:\scoop\apps\mobaxterm\23.4
Creating shim for 'MobaXterm'.
Creating shortcut for MobaXterm Personal (MobaXterm.exe)
Persisting MobaXterm.ini
Persisting MobaXterm backup.zip
'mobaxterm' (23.4) was installed successfully!

连接 Linux 环境 ​

  • 点击 session 按钮,进入会话管理;
  • 弹出的 session 管理页面中,填写信息并保存;
    • Remote host: 192.168.xxx.xxx (根据自己环境填写)
    • Specify uername: root ,并勾选
    • Bookmark settings → Session name: lesson-101 (随意,可不修改)
  • 点击 OK 后会提示你是第一次连接,询问你是信任连接的服务;
  • 选择 accept 之后,会询问你是否要记住密码,选择 yes;
  • 紧接着需要你设置一个 MobarXterm 的全局密码用于做密码管理,建议设置一个与虚拟机密码不同的;
  • 输入密码成功后,就会连接成功,并进入操作界面了。

TIP

FTP 面板,展示的是虚拟机的文件系统,可以直接拖按方式上传或下载文件!

配置 MobarXterm ​

MobarXterm 默认的配置并不是很好用,我们需要对其进行一些配置。

配置默认编辑器 ​

建议设置一下默认编辑器,这样我们通过 MobarXterm 的 FTP 工具打开文件时会以指定的编辑器打开,方便修改。我这里配置的是 vscode。

  • 点击 Settings 按钮,进入设置;
  • 点击 General 选项卡(默认就是)
  • 第 3 项 Default text editor program,右边选择 VSCode 程序。(scoop 安装的在 scoop/apps/vscode/current/Code.exe)

配置右键粘贴 ​

复制粘贴是很常用的配置,MobarXterm 默认左键选中即复制,但是需要配置右键点击为粘贴

  • 点击 Settings 按钮,进入设置;
  • 点击 Terminal 选项卡
  • 在 Terminal features
    • 勾选 Paste using right-click
    • 不要勾选 Warn before pasting multiple lines
    • 勾选 Track terminal activity

这样,复制和粘贴可以全部通过鼠标操作,无需按键。

ssh 配置 ​

  • 点击 Settings 按钮,进入设置;
  • 点击 SSH 选项卡
  • 在 SSH settings
    • Default login 中填写 root (默认的登录用户)
    • 勾选 SSH keepalive (ssh 保持连接)
    • 不要勾选 Display SSH banner (取消连接成功后的欢迎 banner)

关闭 X-Server 服务 ​

大多数情况下,我们没有 x-server 的需求,因此可以选择不要自启动。

  • 点击 Settings 按钮,进入设置;
  • 点击 X11 选项卡
  • 在 Server settings
    • 不要勾选 Automatically start X server at MobaXterm start up