导语:
我之前已经实现了在服务器上直接部署一个文件,但是那种部署方式有个明显的缺陷:我如果需要在其他机器部署该项目时,需要重新配置项目所依赖的环境。因此我们需要一种只需要配置一次环境依赖,就可以在其他机器上随心所欲部署项目的方式——docker容器化部署!
安装docker:
想要在docker部署一个项目,我们首先需要有docker的环境,具体的配置方式可以参考我另一篇文章:https://blog.csdn.net/Test_the_rookie/article/details/132166094?spm=1001.2014.3001.5501
编写dockerfile文件:
如果你看看这里,你肯定会疑问什么是dockerfile文件?它的作用又是什么?
dockerfile:是一种文本文件,用于定义docker镜像构建的过程和配置,里面含有一系列的参数和配置,如基础镜像、依赖项、工作目录等。通过dockerfile能够重复快速的构建镜像,生成的镜像的环境以及依赖完全一致。
下面是一个dockerfile文件的基础示例。
将项目复制到宿主机:
参考之前直接在Linux机器上部署项目的文章:https://blog.csdn.net/Test_the_rookie/article/details/131452195?spm=1001.2014.3001.5501
启动docker服务:
执行命令:docker version,出现下图所示的内容时,表示docker服务未能启动
此时需要执行命令:sudo systemctl restart docker,然后执行命令docker version 出现下图所示的内容表示docker服务已启动
构建docker镜像:
执行命令:docker build -t 镜像名 .
该命令的含义如下:
docker build:构建镜像的命令
-t:用于指定新镜像的名称
. :表示构建的路径,代表的是当前目录,即构建镜像时,会在当前目录找到dockerfile文件,会根据dockerfile文件的配置构建镜像
当出现图示内容时,表示镜像构建成功!
可以通过命令:docker images,查看容器中的镜像,我标记的就是刚才构建的test镜像
启动容器:
执行命令:docker run -d -p 映射端口:项目端口号 镜像名 (-d 表示后台启动)
通过命令:docker ps -a ,可以查看正在运行的容器,up表示正在运行,exited表示容器已经停止运行
可以通过命令:docker logs -f 容器id 查看容器的运行日志
访问:
在其同一局域网的其他机器上,输入https:\宿主机ip:映射的端口号,即可访问对应的项目
拓展:
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中外抛的端口号。
-------------------------------学海无涯