基于CentOS 7 LINUX学习使用docker。
一、Docker安装
1、安装docker依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、安装 Docker CE
# 添加官方仓库 Docker CE 仓库(适用于 CentOS 7)
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
# 验证安装
docker --version
3、启动服务
sudo systemctl start docker
sudo systemctl enable docker # 设置开机自启
4、配置docker镜像源,加速下载
# 配置中科大镜像
sudo tee /etc/docker/daemon.json <<EOF
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
# 重启服务生效
sudo systemctl daemon-reload
sudo systemctl restart docker
二、使用docker部署服务
个人理解:docker部署相当于将服务器源码打包成镜像,然后创建一个新的容器运行该镜像,达到各服务隔离的目的
1、资源
-
服务源码(含依赖文件-requirements.txt)
-
Dockerfile
2、构建dockerfile
-
在源码项目目录下,创建一个名为
Dockerfile的文件,注意没有后缀,首字母大写
# 使用官方 Python 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 复制依赖文件到容器
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码到容器
COPY . .
# 设置环境变量(可选)
ENV FLASK_APP=app.py
# 暴露端口(根据应用需要)
EXPOSE 5000
# 启动应用
CMD ["python", "app.py"]
注释:
-
FROM: 从Docker Hub公共镜像仓库拉取python3.9-slim镜像,但是国内下载很慢,前面我们配置了中科大镜像源可以提速 -
WORKDIR: 指令用于设置容器内的工作目录。这个目录是后续所有相对路径指令(如COPY、ADD、RUN等)的基础路径 -
ENV FLASK_APP:设置FLASK_APP的环境变量,这样在容器内部可以直接用flask run --host="0.0.0.0"来运行程序,不过一般只有测试环境这么用。使用python直接运行app.py,适合在生产环境使用,也不依赖环境变量,所以该参数可选 -
EXPOSE: 告诉外界我这个容器内部使用了哪些端口,多个端口可用空格隔开,一般使用docker inspect <镜像名称>查看
3、构建docker镜像
# 项目目录也就是构建的docker镜像名称
docker build -t <项目目录>:<version_tag> .
4、运行docker容器
docker run -d -p 主机端口:<容器监控端口> <docker镜像名称>
-
-d:后台运行容器。 -
-p:将容器的端口映射到主机的端口,可通过主机ip+端口访问到容器运行的服务
1880

被折叠的 条评论
为什么被折叠?



