使用docker部署一个简单的cc++程序的方法

使用docker部署一个简单的cc++程序的方法,第1张

使用docker部署一个简单的c/c++程序的方法

本文主要介绍了使用docker部署一个简单的c/c++程序的方法。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。让我们和边肖一起学习。

首先,建立hello-world.cpp文件

程序代码如下:

#include<iostream> usingnamespacestd; intmain(){ cout<<"hello-world"<<endl; cout<<"myfirstdocker"<<endl; return0; }

例如,我在我的home路径下建立了一个dockerfile/hello-world目录,并在其中创建了一个新的hello-world.cpp源文件。

二。编写DockerFile文件

文件和源文件在一个文件夹里,如上图所示,名为hello-dockerfile
。首先,给出文件的内容,然后逐一解释:

FROMcodenvy/cpp_gcc RUNmkdir/home/user/myapp ADDhello-world.cpp/home/user/myapp WORKDIR/home/user/myapp RUNg++hello-world.cpp-ohello CMD["./hello"]

Dockerfile的命令可以借鉴我的另一个博客,https://www.jb51.net/article/197996.htm.

1、来自codenvy/cpp_gcc

FROM后面是该目标映像使用的基础映像。只能有一个基础映像。你可以去dockerHub通过dockersearch命令找到你想要的基础镜像。由于我们想要编译一个C++文件,我们可以使用g++或gcc作为基础映像。我们可以用g++搜索图像,如下图所示:


比如我用第二个,然后用dockerpull命令本地拉图像,如下图
所示


输入dockerimages命令查看所有本地图像,如下图所示:


比如我这里有两个镜像:一个是我刚下载的codenvy/cpp_gcc,另一个是ubuntu镜像。

这里可能有人会问,为什么不用ubuntu镜像呢?在我们的印象中,ubuntu自带g++和gcc编译器,这个镜像还是比较小的。我在这里解释一下:由于docker下的ubuntu镜像只保留了ubuntu的内核相关的东西,内核之外的东西都被尽量删除了,这就解释了我们安装ubuntu的镜像有近两个G,而docker的ubuntu镜像只有70M多,在这个Ubuntu镜像中,没有gcc和g++命令,甚至连sudo命令都没有,需要手动下载。

例如,我们使用这个ubuntu映像来生成一个容器:


然后检查g++的版本:


没有安装G++


sudo命令也没有。
所以我们需要用g++下载一个镜像,也可以自己手动安装在ubuntu镜像中,只是有点繁琐。

2、运行mkdir/home/user/myapp

RUN命令是构建容器时需要的命令,后面是我们常见的linux命令。

该命令用于在/home/user路径下创建一个新的myapp文件夹。

3、添加hello-world.CPP/home/user/myapp

ADD命令将主机下的文件复制到镜像,或者您可以使用COPY命令,但是ADDCOPY更强大

这个命令将在第一步中创建的新hello-world.cpp源文件复制到映像中的/home/user/myapp路径。

4、工作目录/家庭/用户/myapp

WORKDIR命令在创建容器时指定容器的默认工作目录。

该命令将镜像中的home/user/myapp路径作为默认工作路径。

5、运行g++hello-world.CPP-ohello

命令是用g++编译hello-world.cpp源文件,构建一个可执行文件hello。

6、CMD["。/hello"]

CMD是创建容器后运行的第一个命令。

该命令用于运行在上一步中构建的可执行文件hello。

三。创建镜像

使用命令:

dockerbuild-f./hello-dockerfile-tmy_hello_docker:v1.0.

。/hello-Dockerfile是我们Dockerfile的位置
my_hello_docker是新创建的镜像的名称
v1.0是这个镜像的标签,比如这是第一版

镜像的过程如下图所示:


完成构建。让我们检查一下构建是否成功。通过dockerimages命令检查所有当前本地镜像:


这里我们看到多了一个镜像:my_hello_docker,这是我们刚刚创建的镜像,表示镜像构建成功。

四。通过此镜像运行容器

使用以下命令实例化一个容器

dockerrunmy_hello_docker:v1.0

那么您将得到以下输出:


输出与我们编写的C++文件一致,说明docker成功部署了一个简单的c/c++程序,目的达到了。

关于如何使用docker部署一个简单的c/c++程序的文章到此结束。有关docker部署c/c++程序的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存