|
|
登录后免广告,享受更多奶昔会员权益!
您需要 登录 才可以下载或查看,没有账号?注册
×
一、我们为什么使用Docker?
如果大家用过 VPS,一定遇到过这样的情况: 代码在本地电脑跑得好好的,可是一部署到服务器就是各种报错。我自己也踩过无数次这种坑,比如 PHP的版本不对,依赖库缺失,环境变量不一致,系统的版本存在差异等等。
有一段时间,我几乎每次部署新项目,都要重新折腾一遍环境,有时候为了一个小问题,都能折腾很久很久。到后来我开始使用 Docker,才意识到,原来环境问题,是可以被一次性解决的。
Docker 不仅可以让部署流程变得极其简单,还能显著提升 VPS 的资源利用率。如果大家还没有系统性地用过 Docker,可以看看这篇文章哦。
二、为什么我们要在 VPS 上使用 Docker呢?
我们在安装之前呢,先给大家说一个问题,就是Docker 到底解决了什么问题?其实Docker 的核心思想就是把应用和它需要的一切环境都打包在一起。我们通过 Docker,你运行的不是代码,而是一个已经封装好的运行环境。
无论是在本地、测试服务器,还是生产 VPS,运行结果几乎完全一致。这也是我后来几乎不用再担心环境问题的原因。
在以前,如果想在 VPS 上隔离多个服务的话,通常只能在虚拟机上进行。但虚拟机的问题也比较明显:占用资源率高,启动慢,配置比较复杂等等;但是在Docker 的容器机制完全就不一样了,每个容器共享宿主机内核,每个服务都是独立运行的了,几乎没有额外性能损耗。
我自己在我那一台 4GB 内存的 VPS上,通过 Docker 同时跑过:网站服务,数据库这些都是没有压力的。要是放在传统虚拟化方案里,几乎不可能现实的。
在以前部署一个 Web 服务,流程大概是:1. 安装运行环境,2. 配置依赖,3. 解决冲突,4. 测试能不能跑。
而使用 Docker 后,很多场景只需要一行命令:
- docker run -d -p 80:80 nginx
复制代码
一个 nginx 服务就能直接跑起来。如果你后期需要扩展,还可以结合 Docker Swarm、Kubernetes 做自动化部署和负载均衡,这也是 Docker 在生产环境中受欢迎的原因了。
在传统部署方式下:升级失败就要手动修,环境被污染过后就要重新安装。Docker 镜像是不可变的,每一个版本都可以精确的进行回退。这也给了我很强的安全感:出了问题不是灾难,回滚即可。
我们直接在VPS上运行多个服务,一旦某个程序出现漏洞,风险可能就会扩散到整个系统。Docker 容器本身提供了一层隔离机制,即使某个容器被攻破,其他服务和宿主机依然相对安全。
如果大家希望直接上手实践的话,建议选择原生支持 Docker的VPS。
三、我们怎么在 VPS 上安装 Docker呢?
那就分别来讲 Ubuntu和 CentOS,你按自己的系统选择即可。
Ubuntu 系统安装 Docker
更新系统:
- sudo apt update
- sudo apt upgrade -y
复制代码
安装依赖:
- sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
复制代码
添加 Docker 官方 GPG 密钥:
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
复制代码
添加 Docker 软件源:
- echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
复制代码
安装 Docker:
- sudo apt update
- sudo apt install -y docker-ce docker-ce-cli containerd.io
复制代码
CentOS 系统安装 Docker
安装依赖
- sudo yum install -y yum-utils device-mapper-persistent-data lvm2
复制代码
添加 Docker 仓库
- sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
复制代码
安装 Docker
- sudo yum install -y docker-ce docker-ce-cli containerd.io
复制代码
当我们安装完成后的基础配置后,启动并设置开机自启。
- sudo systemctl start docker
- sudo systemctl enable docker
复制代码
验证是否安装成功:
- docker --version
- docker run hello-world
复制代码
如果你不想每次都用 sudo:
- sudo usermod -aG docker $USER
复制代码
注意:这里需要重新登录后生效。
四、国内 VPS 使用 Docker 的现实问题与解决方案
在国内使用 Docker,几乎所有人都会遇到一个问题就是Docker 镜像拉不动,或者非常慢,这是网络环境决定的。
我为什么推荐用 1Panel 管理 Docker呢?在实际使用中,我非常推荐 1Panel,原因也很简单,一键安装 Docker,内置镜像加速,可视化管理容器,日志、状态一目了然。
对新手来说,图形化管理 Docker 是极大的减轻负担。如果你不想折腾命令行,1Panel 几乎是目前最友好的方案之一。
为什么大家使用VPS 一定要学学 Docker呢?
回顾一下Docker给我带来的改变:不再为环境问题焦虑,VPS 资源利用率更高,部署速度大幅提升,服务更稳定、更安全。对于经常使用 VPS 的人来说,Docker 已经不是“可选项”,而是基础能力。如果大家之前对 Docker 一直停留,那么现在,就是时候真正动手试一次了。当大家第一次用一行命令跑起一个完整服务时,大家就会明白Docker用起来真的不一样。
相关文章:站长破壁者
|
|