Linux 学习历程(六):容器化技术Docker

前言:

在前面的文章里,我们一直在“原生”的 Linux 环境里摸爬滚打。如果要装一个网站,你可能需要安装 Nginx,配置 PHP,再安装 MySQL… 一旦某个环节版本不对,或者你想卸载重装,残留的配置文件能把你搞得痛不欲生。

这就是著名的“环境地狱”。

今天,我们要引入一项改变了整个互联网开发模式的神器——Docker

它可以把软件连同它需要的环境打包成一个标准的“集装箱”。无论你的服务器是什么系统,只要有 Docker,这个集装箱拿来就能跑,用完即扔,绝不污染系统。

准备好了吗?我们要开始施展魔法了。

1. 核心概念:镜像与容器

在敲命令之前,先搞懂两个名词,不然你会晕:

  • 镜像 (Image): 相当于“安装包”或者游戏的“光盘”。它是只读的,哪怕你把系统搞崩了,镜像还是那个镜像。
  • 容器 (Container): 相当于“运行中的程序”。它是基于镜像创建出来的实体。我们可以同时用一个镜像启动 10 个容器,就像用一张光盘装在 10 台电脑上一样。

2. 一键安装 Docker

在国外 VPS 上,安装 Docker 最简单的方法就是使用官方脚本。请复制下面这行命令(root 用户或 sudo 权限):

curl -fsSL https://get.docker.com | bash

等待进度条跑完。安装完成后,为了让我们以后不用每次都敲 sudo,把当前用户加入 Docker 组(记得把 test_user 换成你的用户名):

sudo usermod -aG docker test_user

重要: 运行完上面这行后,你需要断开 SSH 连接并重新登录,权限才会生效。

回来后,输入 docker -v,如果看到版本号,说明安装成功。

3. Hello World:你的第一个容器

按照国际惯例,我们先跑个最简单的。

docker run hello-world

运行结果分析:

你会发现系统提示 Unable to find image 'hello-world:latest' locally(本地没找到镜像)。

然后它会自动去 Docker Hub(官方仓库)下载。下载完后,屏幕上会打印一段 “Hello from Docker!” 的欢迎语,然后程序退出。

这就是 Docker 的魅力:自动下载、自动配置、开箱即用。


4. 实战:搭建 Nginx Web 服务器

光跑个文字没意思,我们要跑个能访问的网站服务。

docker run -d -p 8080:80 --name my-nginx nginx

命令拆解(这句要背下来):

  • -d (Detach):后台运行。不加这个,你关掉终端窗口,网站就挂了。
  • -p 8080:80 (Port):端口映射。这是重中之重!意思是把服务器的 8080 端口映射到容器内部的 80 端口
  • --name my-nginx:给容器起个名字,方便管理。
  • nginx:镜像的名字。

见证奇迹的时刻:

1. 记得去防火墙放行端口:sudo ufw allow 8080/tcp

2. 打开浏览器,输入 http://你的服务器IP:8080

3. 你看到了 “Welcome to nginx!” 的页面了吗?恭喜,你成功了!

5. 常用 Docker 维护命令

服务跑起来了,怎么管理呢?这里有几条“家常”命令:

# 1. 查看正在运行的容器 docker ps

2. 查看所有容器(包括挂掉的)
docker ps -a

3. 停止容器
docker stop my-nginx

4. 删除容器(删除前必须先停止)
docker rm my-nginx

5. 删除镜像(清理磁盘空间时用)
docker rmi nginx

6. 进阶神器:Docker Compose

如果每次启动都要敲上面那么长一串命令,还要记参数,太累了。而且如果一个项目同时需要 Nginx、PHP 和 MySQL 三个容器配合怎么办?

这时候就需要 Docker Compose。它用一个 yaml 配置文件来管理所有的容器。

安装 Compose 插件:

(注:新版 Docker 已经内置了 compose,命令是 docker compose,不需要中间的横杠了,但为了兼容旧习惯,我们还是确认一下)。

docker compose version

实战:安装 Portainer(可视化面板)

既然我们是新手,肯定不想天天对着黑框敲 docker ps。我们来安装一个 Docker 的图形化管理界面——Portainer。用它来管理其他容器,简直爽飞。

1. 创建一个文件夹来存放配置:

mkdir -p ~/docker-data/portainer cd ~/docker-data/portainer

2. 创建 docker-compose.yml 文件:

vim docker-compose.yml

3. 粘贴以下内容(按 i 进入编辑,粘贴后按 Esc 输入 :wq 保存):

version: '3'

services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always ports: - "9000:9000" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data:/data

4. 启动!

docker compose up -d

后续操作:

1. 别忘了防火墙:sudo ufw allow 9000/tcp

2. 访问 http://你的IP:9000

3. 你会看到一个全图形化的界面,设置好管理员密码。以后你再想看容器状态、看日志、重启服务,只需要在网页上点点鼠标就行了!

7. 小结

恭喜你!你已经掌握了服务器运维最核心的技能——Docker。回顾一下:

  1. 我们安装了 Docker 引擎。
  2. 我们学会了用 docker run 启动 Nginx。
  3. 我们学会了用 docker compose 部署 Portainer。
  4. 我们拥有了一个可视化的 Docker 管理面板。

现在,你的 VPS 已经不是一台冷冰冰的代码机器,而是一个准备好接纳各种有趣应用的“应用商店”。

下一篇,你想部署什么?是个人博客 (WordPress)?是私人网盘 (Nextcloud)?还是专属的密码库 (Bitwarden)

有了 Docker,这些都只需要几行代码就能搞定。我们下期见!

博客内容均系原创,未经允许严禁转载!
您可以通过 RSS 订阅本站文章更新,订阅地址:https://blog.abco.fun
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇