一、准备工作
首先需要备好一台能够访问公网的服务器,并确保该服务器已经开启了 SSH 和密码登录方式。
二、创建普通用户并添加 sudo 权限
为了安全起见,不建议使用 root 用户直接登录服务器。我们可以创建一个新用户并为其添加 sudo 权限,从而在需要时执行需要管理员权限的操作。
具体步骤如下:
1. 在服务器上执行以下命令创建新用户:
“`
sudo adduser new_user
“`
其中 `new_user` 指新用户的用户名,根据实际情况自行替换。
2. 执行以下命令为新用户添加 sudo 权限:
“`
sudo usermod -aG sudo new_user
“`
3. 现在就可以以新用户身份登录服务器进行后续操作了。需要注意的是,在登录时应该使用 SSH 密钥而非密码进行认证,以提高安全性。
三、安装 Docker
Docker 是一种轻量级的容器化技术,可以让应用程序在不同的环境中快速部署和运行。这里我们将使用 Docker 来部署验证服务器。
1. 执行以下命令安装 Docker:
“`
sudo apt-get update
sudo apt-get install docker.io
“`
2. 安装完成后,运行以下命令启动 Docker:
“`
sudo systemctl start docker
“`
3. 接下来执行以下命令将当前用户添加到 Docker 用户组中:
“`
sudo usermod -aG docker $USER
“`
4. 为了让上面的修改生效,需要注销并重新登录当前用户。
四、部署验证服务器
1. 在本地电脑上创建一个名为 `verify_server` 的目录,并在其中创建一个名为 `Dockerfile` 的文件,内容如下:
“`
FROM python:3-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install –no-cache-dir -r requirements.txt
COPY . .
CMD [”python”, ”app.py”]
“`
这个 Dockerfile 使用 Python 3.x 作为基础镜像,然后将当前目录下的所有文件复制到容器的 `/app` 目录中,并在容器启动时运行 `app.py` 程序。
2. 在 `verify_server` 目录中创建一个名为 `requirements.txt` 的文件,内容如下:
“`
Flask==1.1.2
“`
这个文件指定了我们要在容器中安装的 Python 库,这里只包含一个用于创建 Web 服务器的 Flask 库。
3. 在 `verify_server` 目录中创建一个名为 `app.py` 的文件,内容如下:
“`python
from flask import Flask, request
app = Flask(__name__)
@app.route(‘/verify’)
def verify():
return ‘OK’
if __name__ == ‘__main__’:
app.run(debug=True, host=’0.0.0.0′)
“`
这个文件创建了一个简单的 Web 服务器,在 `/verify` 路径下返回字符串 `OK`。
4. 将整个项目打包成一个名为 `verify_server.tar` 的压缩包,并使用 SCP 命令将其上传到服务器上。例如:
“`
scp verify_server.tar new_user@server_ip:/home/new_user
“`
其中 `server_ip` 为服务器的公网 IP,`new_user` 为上一步新建的用户。需要输入目标主机的密码进行验证。
5. 在服务器上解压上传的压缩包并进入 `verify_server` 目录:
“`
tar xf verify_server.tar
cd verify_server
“`
6. 执行以下命令构建 Docker 镜像:
“`
docker build -t verify_server .
“`
其中 `.` 表示当前目录。
7. 等待 Docker 镜像构建完成后,执行以下命令启动验证服务器:
“`
docker run -d -p 5000:5000 –name verify_server_container verify_server
“`
这个命令将验证服务器绑定到服务器的 5000 端口上,并以后台运行的方式启动容器。需要注意的是,该命令默认使用的是 root 用户身份,我们可以通过添加 `-u new_user` 选项指定以新用户身份启动容器。
五、测试验证服务器
现在我们已经成功部署了验证服务器,并将其绑定到了服务器的 5000 端口上。可以通过访问 `http://server_ip:5000/verify` 来测试服务器是否正常工作。
如果一切顺利,你应该会在浏览器中看到字符串 `OK`,这就证明服务器已经部署成功了。
六、总结
通过上述步骤,我们成功地将一个简单的 Python Web 应用程序打包成 Docker 镜像,然后部署到了公网服务器上。
这个过程中,我们使用了新建用户、安装 Docker、上传文件、构建镜像和启动容器等多种技术,这些技术都是运维工作中必不可少的一部分。
希望这篇文章能够给想要成为一名优秀运维工程师的读者一些参考和帮助。
评论前必须登录!
注册