在CentOS上利用Docker部署应用的步骤如下:
CentOS 7需要64位系统,内核版本3.10+;CentOS 8需要64位系统,内核版本3.10+。
如果之前安装过旧版本的Docker,可以先进行卸载:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo docker run hello-world
如果看到“Hello from Docker!”的消息,说明Docker环境已正确配置。
在项目根目录下创建一个名为 Dockerfile
的文件,并使用以下指令编写描述脚本:
# 使用官方CentOS镜像作为基础镜像
FROM centos:7
# 安装Python3和pip
RUN yum makecache fast; \
yum install python3-devel python3-pip -y
# 安装Flask
RUN pip3 install -i https://pypi.douban.com/simple flask
# 将当前目录下的main.py文件复制到容器中的/opt目录
COPY main.py /opt
# 设置工作目录为/opt
WORKDIR /opt
# 暴露容器内项目对外暴露的端口号
EXPOSE 8888
# 指定容器启动后,运行的命令
CMD ["python3", "main.py"]
在当前文件夹下,根据 Dockerfile
文件构建一个镜像:
docker build --no-cache -t "my_flask_web" .
使用 docker run
命令基于镜像运行一个容器:
docker run -d --name flask_web -p 9999:8888 my_flask_web
其中:
-d
:代表容器在后台运行。--name
:用于执行容器的别名。-p
:用于配置宿主机与容器的端口映射。最后,在浏览器中通过宿主机暴露的端口号访问项目:
http://127.0.0.1:9999/
如果看到Flask应用的输出信息,说明应用已成功部署。
docker-compose.yml
文件来描述整个应用的服务、网络和卷等配置。/etc/docker/daemon.json
文件:{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://registry.docker-cn.com"]
}
然后重启Docker服务:
sudo systemctl restart docker
通过以上步骤,你可以在CentOS上成功利用Docker部署应用。