zoukankan      html  css  js  c++  java
  • docker--build base image

        通过dockerfile build一个base image,在上面运行一个c程序

    首先

    1、创建一个目录。

    2、然后创建一个c写的小程序,并且gcc编译好。

    3、创建一个Dockerfile

    
    
    FROM scratch #scrath表示运行在内核之上
    ADD soeasy2 /   #增加文件
    CMD ["/soeasy2"]#运行程序
    
    

    4、build image

    5、运行image

    [root@localhost docker_test]# ls
    Dockerfile  soeasy2  soeasy.c  soeasy.sh
    [root@localhost docker_test]# vim Dockerfile 
    [root@localhost docker_test]# docker build -t bigni/test1 .   #-t表示tag  最后的点号,表示在当前目录寻找Dockerfile
    Sending build context to Docker daemon  865.8kB
    Step 1/3 : FROM scratch
     ---> 
    Step 2/3 : ADD soeasy2 /
     ---> 3ec8199c2855
    Step 3/3 : CMD ["/soeasy2"]
     ---> Running in 7fcaf3239425
    Removing intermediate container 7fcaf3239425
     ---> f5620b92331c
    Successfully built f5620b92331c
    Successfully tagged bigni/test1:latest
    [root@localhost docker_test]# docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    bigni/test1         latest              f5620b92331c        12 seconds ago      861kB
    ubuntu              14.04               2c5e00d77a67        7 weeks ago         188MB
    centos              latest              9f38484d220f        3 months ago        202MB
    hello-world         latest              fce289e99eb9        6 months ago        1.84kB
    [root@localhost docker_test]# docker run f5620b92331c #运行image
    docker so easy
    [root@localhost docker_test]# cat Dockerfile 
    FROM scratch
    ADD soeasy2 /
    CMD ["/soeasy2"]
    [root@localhost docker_test]# cat soeasy.c 
    #include<stdio.h>
    
    int main()
    {
     printf("docker so easy
    ");
    }
    [root@localhost docker_test]#

    把程序改成shell脚本,然后还是在linux kernel上构建base image,结果程序运行不起来,改成在centos image上构建,则运行成功。

    [root@localhost docker_test]# vim soeasy.sh 
    [root@localhost docker_test]# cat soeasy.sh 
    #!/bin/bash
    echo "docker so easy !"
    [root@localhost docker_test]# vim Dockerfile 
    [root@localhost docker_test]# cat Dockerfile 
    FROM scratch
    ADD soeasy.sh /
    CMD ["/soeasy.sh"]
    [root@localhost docker_test]# docker build -t bigni/test2 .
    Sending build context to Docker daemon  865.8kB
    Step 1/3 : FROM scratch
     ---> 
    Step 2/3 : ADD soeasy.sh /
     ---> 93d27c3e1b5b
    Step 3/3 : CMD ["/soeasy.sh"]
     ---> Running in 4af6bd362099
    Removing intermediate container 4af6bd362099
     ---> e2b5b08cc31c
    Successfully built e2b5b08cc31c
    Successfully tagged bigni/test2:latest
    [root@localhost docker_test]# docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
    bigni/test2         latest              e2b5b08cc31c        About a minute ago   36B
    bigni/test1         latest              f5620b92331c        18 minutes ago       861kB
    ubuntu              14.04               2c5e00d77a67        7 weeks ago          188MB
    centos              latest              9f38484d220f        3 months ago         202MB
    hello-world         latest              fce289e99eb9        6 months ago         1.84kB
    [root@localhost docker_test]# docker run e2b5b08cc31c #运行image
    standard_init_linux.go:211: exec user process caused "no such file or directory"
    [root@localhost docker_test]# vim Dockerfile 
    [root@localhost docker_test]# cat Dockerfile 
    FROM centos #改成centos
    ADD soeasy.sh /
    CMD ["/soeasy.sh"]
    [root@localhost docker_test]# docker build -t bigni/test3 .
    Sending build context to Docker daemon  865.8kB
    Step 1/3 : FROM centos
     ---> 9f38484d220f
    Step 2/3 : ADD soeasy.sh /
     ---> 9ae6ad56171a
    Step 3/3 : CMD ["/soeasy.sh"]
     ---> Running in b53205a3eb75
    Removing intermediate container b53205a3eb75
     ---> cfbfd0a29d1c
    Successfully built cfbfd0a29d1c
    Successfully tagged bigni/test3:latest
    [root@localhost docker_test]# docker image ls
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    bigni/test3         latest              cfbfd0a29d1c        13 seconds ago      202MB
    bigni/test2         latest              e2b5b08cc31c        5 minutes ago       36B
    bigni/test1         latest              f5620b92331c        22 minutes ago      861kB
    ubuntu              14.04               2c5e00d77a67        7 weeks ago         188MB
    centos              latest              9f38484d220f        3 months ago        202MB
    hello-world         latest              fce289e99eb9        6 months ago        1.84kB
    [root@localhost docker_test]# docker run cfbfd0a29d1c
    docker so easy !
    [root@localhost docker_test]#
  • 相关阅读:
    [LeetCode] Trips and Users 旅行和用户
    [LeetCode] Rising Temperature 上升温度
    [LeetCode] Delete Duplicate Emails 删除重复邮箱
    [LeetCode] Department Top Three Salaries 系里前三高薪水
    Spring boot Jackson基本演绎法&devtools热部署
    使用spring tool suite(STS)工具创建spring boot项目和出现错误后的处理
    Spring Boot 2.0官方文档之 Actuator
    springboot 使用webflux响应式开发教程(二)
    SpringBoot在自定义类中调用service层等Spring其他层
    springBoot单元测试-模拟MVC测试
  • 原文地址:https://www.cnblogs.com/laonicc/p/11143106.html
Copyright © 2011-2022 走看看