使用码头工人如何部署c/c++程序

  介绍

本篇文章给大家分享的是有关使用码头工人如何部署c/c++程序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

程序代码如下:

 # include & lt; iostream>
  使用名称空间性病;
  
  int main () {
  cout & lt; & lt;“hello-world"& lt; & lt;endl;
  cout & lt; & lt;“我的第一个docker"& lt; & lt;endl;
  返回0;
  }

例如我是在我的家里路径下建立一个<强> DockerFile/hello world 目录,里面新建一个<强> hello world。cpp 强源文件。

使用码头工人如何部署c/c++程序

该文件和源文件在一个文件夹下,如上图所示,名为<强> hello-dockerfile
先给出文件内容,然后逐条解释:

  
  运行mkdir/home/user/myapp
  
  添加hello world。cpp/home/user/myapp
  
  WORKDIR/home/user/myapp
  
  运行g++ hello world。cpp - o你好
  
  CMD ["./hello"]

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

1、FROM codenvy/cpp_gcc

FROM是后面是该目标镜像使用的基础镜像,基础镜像有且只能有一个,镜像可以通过docker search 命令去docker Hub上去找自己想要的基础镜像。由于我们想要编译一个C++文件,我们可以使用带有g++或者gcc的镜像作为基础镜像,我们可以搜索一下带有g++的镜像,如下图所示:

使用docker如何部署c/c++程序

例如我使用的是第二个,然后通过docker pull命令将该镜像pull到本地,如下图所示

使用docker如何部署c/c++程序

输入docker images 命令可以查看本地的所有镜像,如下图所示:

使用docker如何部署c/c++程序

例如我这里有两个镜像:一个刚才下载的codenvy/cpp_gcc,还有一个ubuntu镜像。

这里可能有人会有疑问,为什么不直接使用ubuntu镜像呢?在我们的印象中ubuntu自带了g++和gcc编译器,而且这个镜像还比较小。这里我来说明一下:由于docker下的ubuntu镜像只保留了ubuntu的内核相关的东西,核心以外的东西都尽可能被删除了,这也就解释了平时我们安装ubuntu的镜像有将近两个G,而docker的ubuntu镜像只有七十多M。在这个Ubuntu镜像里是没有gcc和g++ 命令的,连sudo命令都没有,都需要手动下载配置

例如我们使用该ubuntu镜像生成一个容器:

使用docker如何部署c/c++程序

然后查看g++的版本:

使用docker如何部署c/c++程序

发现并没有安装g++

使用docker如何部署c/c++程序

sudo命令也没有。
所以我们需要下载一个带有g++的镜像,也可以自己在ubuntu镜像里手动安装,不过就是有点费事。

2、RUN mkdir/home/user/myapp

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

该命令就是在/home/user 路径下新建一个 myapp 文件夹

3、ADD hello-world.cpp/home/user/myapp

<强>添加强命令是将宿主机下的文件拷贝到镜像,也可以用<强> 复制命令,不过<强>添加强比<强> 复制的功能更强大,<强>添加强带有解压缩的功能。

该命令就是将第一步新建的hello world。cpp源文件拷贝到镜像中的/home/user/myapp路径下。

<强> 4,WORKDIR/home/user/myapp

<强> WORKDIR 强命令就是指定创建容器时,容器的默认工作目录。

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

<强> 5,g++ hello world。cpp - o你好

该命令是使用g++编译hello world。cpp源文件,构建一个可执行文件你好

<强> 6,CMD (“。/hello")

<强> CMD 是指定容器创建完成后第一个运行的命令。

使用码头工人如何部署c/c++程序