C++程序(STAPpp)的docker容器构建

安装docker

  • Centos 7上运行的docker要求操作系统为 64位,内核版本为 3.10 以上。

    • [root@centos ~]$ uname -r
      3.10.0-1160.71.1.el7.x86_64
      
  • 设置Linux内核的流量转发

    • [root@centos ~]$ cat <<EOF > /etc/sysctl.d/docker.conf
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.conf.default.rp_filter = 0
      net.ipv4.conf.all.rp_filter = 0
      net.ipv4.ip_forward = 1
      EOF
      
  • 加载修改Linux内核参数的配置文件

    • [root@centos ~]$ modprobe br_netfilter
      [root@centos ~]$ sysctl -p /etc/sysctl.d/docker.conf
      
  • yum 安装docker-ce

    • [root@centos ~]$ yum list docker-ce --showduplicates | sort -r
      错误:没有匹配的软件包可以列出
      已加载插件:fastestmirror, langpacks
       * updates: mirrors.aliyun.com
      Loading mirror speeds from cached hostfile
       * extras: mirrors.aliyun.com
       * base: mirrors.aliyun.com
      
      #如上,当前仓库没有docker-ce安装包,需要配置yum源
      [root@centos ~]$ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      [root@centos ~]$ yum clean all && yum makecache
      
      #查看可安装的docker版本信息
      [root@centos ~]$ yum list docker-ce --showduplicates | sort -r
      
      #安装docker(我挑了个最新的)
      [root@centos ~]$ yum install docker-ce-23.0.0 -y
      

配置docker加速器

#创建并修改配置文件
[root@centos ~]$ mkdir -p /etc/docker
[root@centos ~]$ touch /etc/docker/daemon.json

# 道客云镜像加速
[root@centos ~]$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

#加载配置文件
[root@centos ~]$ systemctl daemon-reload

#设置开机自启
[root@centos ~]$ systemctl enable docker

#启动docker
[root@centos ~]$ systemctl restart docker

准备stappp代码

  1. GitHub远端拉取 git clone git@github.com:xzhang66/STAPpp.git

  2. 从本地宿主机拷贝 scp -r stappp root@192.168.74.129:/home/eishin/

撰写Dockerfile

FROM centos:7.9.2009
RUN curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
RUN yum makecache fast
RUN yum install -y gcc gcc-c++ cmake3 make && mkdir /opt/build
WORKDIR /opt/build
COPY ../stappp/src /opt/src
RUN cmake3 ../src && cmake3 . -DCMAKE_BUILD_TYPE="Release" && make
ENTRYPOINT ["./stap++"]

生成镜像

[root@localhost stapppDocker]$ docker build -t "stappp_docker" -f /home/eishin/stapppDocker/Dockerfile /home/eishin/

运行并测试stappp容器

[root@localhost stapppDocker]$ docker run --name=homework -v /home/eishin/stappp/data:/opt/data stappp_docker /opt/data/homework.dat
TITLE : Cables to test STAP90
        (7:40:14 on March 24, 2023, Friday)

C O N T R O L   I N F O R M A T I O N

      NUMBER OF NODAL POINTS . . . . . . . . . . (NUMNP)  =    12
      NUMBER OF ELEMENT GROUPS . . . . . . . . . (NUMEG)  =     1
      NUMBER OF LOAD CASES . . . . . . . . . . . (NLCASE) =     1
      SOLUTION MODE  . . . . . . . . . . . . . . (MODEX)  =     1
         EQ.0, DATA CHECK
         EQ.1, EXECUTION

 N O D A L   P O I N T   D A T A

    NODE       BOUNDARY                         NODAL POINT
   NUMBER  CONDITION  CODES                     COORDINATES
        1    1    1    1       0.00000e+00    0.00000e+00    0.00000e+00
        2    1    1    1       1.50000e+01    0.00000e+00    0.00000e+00
        3    0    0    1       3.00000e+00    0.00000e+00    0.00000e+00
        4    0    0    1       6.00000e+00    0.00000e+00    0.00000e+00
        5    0    0    1       9.00000e+00    0.00000e+00    0.00000e+00
        6    0    0    1       1.20000e+01    0.00000e+00    0.00000e+00
        7    0    0    1       0.00000e+00    4.00000e+00    0.00000e+00
        8    0    0    1       3.00000e+00    4.00000e+00    0.00000e+00
        9    0    0    1       6.00000e+00    4.00000e+00    0.00000e+00
       10    0    0    1       9.00000e+00    4.00000e+00    0.00000e+00
       11    0    0    1       1.20000e+01    4.00000e+00    0.00000e+00
       12    0    0    1       1.50000e+01    4.00000e+00    0.00000e+00

 EQUATION NUMBERS

   NODE NUMBER   DEGREES OF FREEDOM
        N           X    Y    Z
        1           0    0    0
        2           0    0    0
        3           1    2    0
        4           3    4    0
        5           5    6    0
        6           7    8    0
        7           9   10    0
        8          11   12    0
        9          13   14    0
       10          15   16    0
       11          17   18    0
       12          19   20    0

 L O A D   C A S E   D A T A

     LOAD CASE NUMBER . . . . . . . =     1
     NUMBER OF CONCENTRATED LOADS . =     1

    NODE       DIRECTION      LOAD
   NUMBER                   MAGNITUDE
      4            2       -7.00000e+03

 E L E M E N T   G R O U P   D A T A


 E L E M E N T   D E F I N I T I O N

 ELEMENT TYPE  . . . . . . . . . . . . .( NPAR(1) ) . . =    1
     EQ.1, TRUSS ELEMENTS
     EQ.2, ELEMENTS CURRENTLY
     EQ.3, NOT AVAILABLE

 NUMBER OF ELEMENTS. . . . . . . . . . .( NPAR(2) ) . . =   22

 M A T E R I A L   D E F I N I T I O N

 NUMBER OF DIFFERENT SETS OF MATERIAL
 AND CROSS-SECTIONAL  CONSTANTS  . . . .( NPAR(3) ) . . =    1

  SET       YOUNG'S     CROSS-SECTIONAL
 NUMBER     MODULUS          AREA
               E              A
    1     1.50000e+11     1.00000e-02


 E L E M E N T   I N F O R M A T I O N
 ELEMENT     NODE     NODE       MATERIAL
 NUMBER-N      I        J       SET NUMBER
    1          1        7           1
    2          3        8           1
    3          4        9           1
    4          5       10           1
    5          6       11           1
    6          2       12           1
    7          1        3           1
    8          3        4           1
    9          4        5           1
   10          5        6           1
   11          6        2           1
   12          7        8           1
   13          8        9           1
   14          9       10           1
   15         10       11           1
   16         11       12           1
   17          7        3           1
   18          8        4           1
   19          9        5           1
   20          4       10           1
   21          5       11           1
   22          6       12           1

        TOTAL SYSTEM DATA

     NUMBER OF EQUATIONS . . . . . . . . . . . . . .(NEQ) = 20
     NUMBER OF MATRIX ELEMENTS . . . . . . . . . . .(NWK) = 170
     MAXIMUM HALF BANDWIDTH  . . . . . . . . . . . .(MK ) = 14
     MEAN HALF BANDWIDTH . . . . . . . . . . . . . .(MM ) = 8


 LOAD CASE    1


 D I S P L A C E M E N T S

  NODE           X-DISPLACEMENT    Y-DISPLACEMENT    Z-DISPLACEMENT
    1               0.00000e+00       0.00000e+00       0.00000e+00
    2               0.00000e+00       0.00000e+00       0.00000e+00
    3              -4.25316e-06      -5.09702e-05       0.00000e+00
    4              -2.20633e-06      -9.56803e-05       0.00000e+00
    5               4.30633e-06      -8.05603e-05       0.00000e+00
    6               4.25316e-06      -4.18352e-05       0.00000e+00
    7               1.96071e-05      -1.12000e-05       0.00000e+00
    8               1.33071e-05      -6.21702e-05       0.00000e+00
    9               7.07089e-07      -9.14743e-05       0.00000e+00
   10              -9.52709e-06      -8.38210e-05       0.00000e+00
   11              -1.79271e-05      -4.93019e-05       0.00000e+00
   12              -2.21271e-05      -7.46667e-06       0.00000e+00

 S T R E S S  C A L C U L A T I O N S  F O R  E L E M E N T  G R O U P    1

  ELEMENT             FORCE            STRESS
  NUMBER
    1          -4.20000e+03      -4.20000e+05
    2          -4.20000e+03      -4.20000e+05
    3           1.57722e+03       1.57722e+05
    4          -1.22278e+03      -1.22278e+05
    5          -2.80000e+03      -2.80000e+05
    6          -2.80000e+03      -2.80000e+05
    7          -2.12658e+03      -2.12658e+05
    8           1.02342e+03       1.02342e+05
    9           3.25633e+03       3.25633e+05
   10          -2.65823e+01      -2.65823e+03
   11          -2.12658e+03      -2.12658e+05
   12          -3.15000e+03      -3.15000e+05
   13          -6.30000e+03      -6.30000e+05
   14          -5.11709e+03      -5.11709e+05
   15          -4.20000e+03      -4.20000e+05
   16          -2.10000e+03      -2.10000e+05
   17           5.25000e+03       5.25000e+05
   18           5.25000e+03       5.25000e+05
   19          -1.97152e+03      -1.97152e+05
   20           1.52848e+03       1.52848e+05
   21           3.50000e+03       3.50000e+05
   22           3.50000e+03       3.50000e+05


 S O L U T I O N   T I M E   L O G   I N   S E C

     TIME FOR INPUT PHASE = 0.00000e+00
     TIME FOR CALCULATION OF STIFFNESS MATRIX = 0.00000e+00
     TIME FOR FACTORIZATION AND LOAD CASE SOLUTIONS = 0.00000e+00

     T O T A L   S O L U T I O N   T I M E = 0.00000e+00

[root@localhost stapppDocker]$ ls ../stappp/data/
bar-6.dat  exercise-2-5.dat  homework.dat  homework.out  Input.data  test_truss_22.dat  truss.dat

镜像转移

  1. 搭建docker hub仓库,直接docker pushdocker pull;

  2. 本地文件转移

    [root@localhost eishin]$ docker images
    REPOSITORY            TAG        IMAGE ID       CREATED             SIZE
    stappp_docker         latest     1c483d6fcafe   36 minutes ago      857MB
    
    [root@localhost stapppDocker]$ docker image save stappp_docker > /home/eishin/stappp_docker.tgz
    
    [root@localhost stapppDocker]$ docker load -i /home/eishin/stappp_docker.tgz
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值