首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

部署:Docker部署自己的C/C++程序

发布网友 发布时间:2024-10-23 02:49

我来回答

1个回答

热心网友 时间:2024-11-04 12:49

以前对Docker有所耳闻,但仅限于表面了解。这次由于公司项目需求,深入学习了Docker的相关知识,特此记录以备忘。

本文主要介绍Docker的使用:包括Docker的安装、常用术语、自定义镜像、镜像的使用以及如何开机自启动自己的程序。至于更深层次的原理、架构、优化等内容,由于能力有限,不做过多阐述。

准备Ubuntu虚拟机并可用Xshell(或其他远程工具)远程连接,同时准备需要部署的自己的程序。

接下来,我们将学习Docker的基础知识,包括Docker的安装和定制镜像。

我的应用是C++程序,需要一些依赖环境和第三方库的支持。因此,我选择了Ubuntu18.04作为基础镜像。

Dockerfile脚本如下:

脚本中首先指定了基础镜像,然后在镜像中安装了一些工具,并创建了目录/opt/ls1000。接着将本地文件夹ls1000下的所有文件和目录拷贝到镜像的/opt/ls1000目录下。给自己的程序和库文件添加可执行权限,并将第三方库拷贝到系统目录中,使配置生效。最后,移除安装工具遗留的不必要文件。

完成Dockerfile脚本后,将其和文件传到虚拟机的一个目录下。在命令行进入该目录,执行以下命令:

镜像也可以上传到镜像仓库中,通过命令下载已上传的镜像。

对于运行在服务器上的服务来说,最好能够实现开机自启动,以避免不必要的麻烦。下面主要介绍如何通过Docker自定义镜像实现开机自启动。

以系统中的两个程序APP1和APP2为例,制作两个脚本start_app1.sh和start_app2.sh。

start_app1.sh脚本内容如下:

start_app2.sh的脚本与start_app1.sh类似,只需改变NAME和PROCESS两个变量即可。

将上述脚本放置在镜像指定的位置,这里我选择了/opt/ls1000/目录。重新制作一个镜像。

制作执行Docker命令脚本(可选):

auto_app1.sh脚本内容如下:

auto_app2.sh脚本内容与auto_app1.sh类似。

将上述两个脚本放置在虚拟机下的一个地方,并添加执行权限,直接执行即可。脚本中起到自启动作用的字段是--restart=always这个参数。

也可以不创建auto_app1.sh和auto_app2.sh,直接在虚拟机中执行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com