导语:

我之前已经实现了在服务器上直接部署一个文件,但是那种部署方式有个明显的缺陷:我如果需要在其他机器部署该项目时,需要重新配置项目所依赖的环境。因此我们需要一种只需要配置一次环境依赖,就可以在其他机器上随心所欲部署项目的方式——docker容器化部署!

docker python包升级 docker部署python_eureka

安装docker:

想要在docker部署一个项目,我们首先需要有docker的环境,具体的配置方式可以参考我另一篇文章:

编写dockerfile文件:

如果你看看这里,你肯定会疑问什么是dockerfile文件?它的作用又是什么?

dockerfile:是一种文本文件,用于定义docker镜像构建的过程和配置,里面含有一系列的参数和配置,如基础镜像、依赖项、工作目录等。通过dockerfile能够重复快速的构建镜像,生成的镜像的环境以及依赖完全一致。

下面是一个dockerfile文件的基础示例。

docker python包升级 docker部署python_docker_02


将项目复制到宿主机:

参考之前直接在Linux机器上部署项目的文章:启动docker服务:

执行命令:docker version,出现下图所示的内容时,表示docker服务未能启动

docker python包升级 docker部署python_java_03


此时需要执行命令:sudo systemctl restart docker,然后执行命令docker version 出现下图所示的内容表示docker服务已启动

docker python包升级 docker部署python_docker python包升级_04

构建docker镜像:

执行命令:docker build -t 镜像名 .

该命令的含义如下:

docker build:构建镜像的命令

-t:用于指定新镜像的名称

. :表示构建的路径,代表的是当前目录,即构建镜像时,会在当前目录找到dockerfile文件,会根据dockerfile文件的配置构建镜像

当出现图示内容时,表示镜像构建成功!

docker python包升级 docker部署python_端口号_05


可以通过命令:docker images,查看容器中的镜像,我标记的就是刚才构建的test镜像

docker python包升级 docker部署python_docker_06

启动容器:

执行命令:docker run -d -p 映射端口:项目端口号 镜像名 (-d 表示后台启动)

docker python包升级 docker部署python_java_07


通过命令:docker ps -a ,可以查看正在运行的容器,up表示正在运行,exited表示容器已经停止运行

docker python包升级 docker部署python_eureka_08


可以通过命令:docker logs -f 容器id 查看容器的运行日志

docker python包升级 docker部署python_端口号_09

访问:
在其同一局域网的其他机器上,输入https:\宿主机ip:映射的端口号,即可访问对应的项目

docker python包升级 docker部署python_java_10

拓展:

1.设置全局镜像加速,我们上面的示例是的加速源,是针对某一个容器的,如果其他容器想要加速,则每次都需要在dockerfile中设置加速源。为了方便操作,我们可以在宿主机执行命令:
sudo vim /etc/docker/daemon.json,进入文件中后,切入编辑模式,在配置中添加如下内容
{
“registry-mirrors”: [“https://xxxxxxxx.mirror.aliyuncs.com”]
}
xxxxxxxx 替换为您的阿里云加速器地址。您可以在阿里云容器镜像服务中找到您的专属加速器地址。也可以配置成其他加速源,或者多个加速源并存。配置完成之后,执行命令sudo systemctl restart docker 重启docker服务。后续dockerfile中就无需在设置加速源了 。
2.dockerfile文件的命名不用强制为dockerfile,如果使用其他名称时,构建镜像时,需要使用-f 参数指定对应dockerfile文件的路径以及名称,用于构建镜像。
3.在启动容器使用-p参数指定端口映射时,一定要注意,第一个端口是你要映射的端口,第二个是你项目中指定的端口号,不是dockfile中外抛的端口号。

-------------------------------学海无涯