1 运行环境
本次环境为腾讯云服务器,需购买腾讯云服务器,评论区联系8-9折优惠。
CentOS Stream 9
CentOS Stream 是一个开源的Linux发行版,它基于Red Hat Enterprise Linux(RHEL)构建,提供了一个更加灵活的、与上游开发更紧密的环境。
实例规格
- CPU – 2核 内存 – 4GB
- 系统盘 – SSD云硬盘 70GB管理快照
- 流量包 – 600GB/月(带宽 6Mbps)
地域和可用区:成都 | 成都一区
2 安装docker
docker官网 contos安装地址 CentOS作系统 |Docker 文档
2.1卸载旧版本
在安装 Docker Engine 之前,您需要卸载任何冲突的软件包。
sudo dnf remove docker \\
docker-client \\
docker-client-latest \\
docker-common \\
docker-latest \\
docker-latest-logrotate \\
docker-logrotate \\
docker-engine
2.2 使用rpm存储安装
在新主机上首次安装 Docker Engine 之前,您需要 需要设置 Docker 存储库。之后,您可以安装和更新 存储库中的 Docker。
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.3 安装
要安装最新版本,请运行:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
便捷脚本安装
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh –dry-run
使用 curl 工具,从 https://get.docker.com 下载 Docker 官方安装脚本,并把它保存为本地文件 get-docker.sh。
- -f:遇到 HTTP 错误时不输出 HTML 错误页面,直接失败。
- -s:静默模式,不显示进度条和错误信息。
- -S:配合 -s,遇到错误时显示错误信息。
- -L:跟随重定向。
- -o get-docker.sh:把下载的内容保存为 get-docker.sh 文件。
用 root 权限(sudo)执行刚才下载的 get-docker.sh 脚本,并加上 –dry-run 参数。
- sudo:以管理员权限运行命令。
- sh ./get-docker.sh:执行下载的安装脚本。
- –dry-run:试运行模式,不会真正安装 Docker,只会显示如果执行会做哪些操作(即“演练”一下,不会对系统产生实际影响)。
2.4 配置国内镜像源
详情可见教程 |Docker更改为国内镜像源
https://blog.csdn.net/m0_64112669/article/details/147209511?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522132c1daaa52764d5934238b4cf2150e4%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=132c1daaa52764d5934238b4cf2150e4&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-147209511-null-null.142^v102^pc_search_result_base3&utm_term=docker%E4%BF%AE%E6%94%B9%E9%95%9C%E5%83%8F%E6%BA%90&spm=1018.2226.3001.4449
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors" :
[
"https://docker.domys.cc",
"https://hub.domys.cc",
"https://docker.m.daocloud.io",
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
运行上方命令。
文件夹路径/etc/docker下创建daemon.json,写入配置代码,重新加载所有服务配置文件,再重启docker。
查看设置镜像源
docker info
2.5 拉取 nginx 镜像测试
docker pull nginx
没写版本号默认拉取最新版本latest
docker images
docker 运行 nginx
docker run -d -p 80:80 –name mynginx nginx
查看
docker ps
公网ip+80端口测试部署效果
3 项目小实战部署 python Flask 项目
3.1项目信息
python3.8环境
flask框架
对外暴露8080端口
ip:8080接口请求返回'你好,腾讯云'
3.2Dockerfile和app.py文件
Dockerfile
# 指定基础映像
FROM python:3.8
# 维护者信息
LABEL maintainer="sqy@example.com"
# 直接安装 Flask,无需依赖文件
# –no-cache-dir 参数的意思是安装时不使用和不保存 pip 的缓存文件,这样可以减小 Docker 镜像的体积
RUN pip install –no-cache-dir Flask -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN mkdir -p /data/www/
# 负责将 app.py 文件复制到容器内 /data/www/app.py
COPY app.py /data/www/app.py
WORKDIR /data/www
CMD ["python3", "app.py"]
app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return '你好,腾讯云'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
3.3构建镜像运行容器
确保Dockerfile、app.py文件在同意目录下。
根据 Dockerfile 构建镜像,镜像名为 sqyflask/web,标签为 1.0。
docker build -t sqyflask/web:1.0 . -f Dockerfile
查看镜像是否构建成功。
docker images
启动容器,映射端口8080到对外80端口。
docker run -d -p 80:8080 –name myfalsk sqyflask/web:1.0
查看运行状况
ip:80测试
进入容器
docker exec -it myfalsk /bin/bash
查看环境
评论前必须登录!
注册