docker创建image实例

1 创建工程目录

 

2 在工程目录下创建 Dockerfile , .dockerignore

~/share/projects/docker-demo/test$ ls -a
.  ..  Dockerfile  .dockerignore  result.txt  src  test
~/share/projects/docker-demo/test/src$ cat main.c 
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>


#define FILE_PATH "./result.txt"

int main(void)
{
	int fd = -1;

	fd = open(FILE_PATH, O_RDWR);

	if (fd > 0)
		printf("open file ok\n");
	else
		printf("open file fail\n");
	
	while (1)
	{
		usleep(1*1000*1000);
		printf("my service running...\n");
	}

	return 0;
}

 


3 编写Dockerfile

Dockerfile是用来docker 创建镜像时读取的配置文件

内容如下:

FROM ubuntu:18.04 
COPY . /app
WORKDIR /app
CMD /app/test

FROM 表明这个镜像继承自ubuntu镜像,ubuntu镜像包含root_fs、linux常用lib和bin, test是一个C编译出来的可执行二进制文件, 它的运行依赖Linux lib环境, 所以FROM ubuntu。

也可以FROM 一个空镜像,写法: FROM scratch, 不过这样的话,需要自己搭建root_fs和运行环境。

4 编写.dockerignore

和.gitignore一样, 用来过滤文件,按照自己的需求来编写,减少垃圾文件被打包。

~/share/projects/docker-demo/test$ cat .dockerignore 
src


5 build

~/share/projects/docker-demo/test$ docker image build -t test-demo ./
Sending build context to Docker daemon   12.8kB
Step 1/4 : FROM ubuntu:18.04
 ---> 6526a1858e5d
Step 2/4 : COPY . /app
 ---> Using cache
 ---> 56aa8f01a461
Step 3/4 : WORKDIR /app
 ---> Using cache
 ---> 448eeaea2405
Step 4/4 : CMD /app/test
 ---> Using cache
 ---> 550223df6a76
Successfully built 550223df6a76
Successfully tagged test-demo:latest

 

6 查看创建的image

~/share/projects/docker-demo/test$ docker image ls 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test-demo           latest              550223df6a76        24 minutes ago      64.2MB
mysql               5.7                 ef08065b0a30        6 days ago          448MB
ubuntu              18.04               6526a1858e5d        3 weeks ago         64.2MB
hello-world         latest              bf756fb1ae65        8 months ago        13.3kB
php                 5.6-apache          24c791995c1e        20 months ago       355MB

7 运行

~/share/projects/docker-demo/test$ docker run --rm -it test-demo 
open file ok
my service running...
my service running...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值