一、前置工作
1.安装c编译器
yum install -y gcc gcc-c++
2.安装c静态库
yum install -y glibc-static
3.创建一个.c文件,将代码写入
vim myhello.c
#include <stdio.h>
int main()
{
printf("hello word gj");
return 0;
}
5.将包含命令文件编译为可执行文件
gcc --static -o myhello myhello.c
--static 表示编译文件所需库 为静态库
-o 后跟编译后可执行文件名
6.执行编译后的二进制可执行文件
./myhello
二、编写Dockerfile
//注意,开头为大写D,可以使用-f指定Dockerfile文件,否则默认是当前目录下的Dockerfile文件
7.新建编译dockerfile
vim Dockerfile
FROM scratch
COPY myhello /
CMD ["/myhello"]
--myhello 这个文件是我们自己创建的可执行文件,这个文件的路径是基于构建时指定的目录下级目录,需要配合构建语句决定
-- / 将myhello复制到容器内的此目录下
//也可以使用ADD 添加,当前命令为复制myhello二进制文件到容器的/目录
--CMD表示要运行的指令
--["/myhello"] 表示执行容器 / 目录下的 myhello 文件
三、构建镜像
8.查看命令参数及帮助
docker build --help
-t 指定所创建镜像的名称 <repo><tag>
-f 指定dockerfile文件,否则默认为PATH/Doockerfile -f名称可以不固定为Dockerfile,也可以是dockerfile2等
9.构建镜像
docker build只认定Dockerfile文件,所以指定Dockerfile文件所在目录即可
docker build -t hello-myhello .
语法:docker build 参数 参数值 Dockerfile目录
-t 指定容器名
. 这个点表示以当前所在目录为父目录,Dockerfile内COPY和ADD所添加的文件都在此目录之下寻找,如果为 / 那就是以 / 目录为起始目录寻找文件
10.运行构建的镜像
docker run hello-myhello