学习和使用k8s,docker是基础。本篇通过演示一个C程序hello-world如何在docker容器中运行,来理解一下docker的常用命令。
对于docker容器来说,要运行一个应用,首先得创建一个镜像文件。如下图的hello-world.cpp文件,如何创建docker镜像文件呢?
hello-world.cpp如下:

#include <iostream>

using namespace std;
int main(int argc, char* argv[])
{
	cout << "hello world!" << endl;	
	while(1);

	return 0;
}

首先编写dockerfile文件hello-dockerfile如下:

FROM codenvy/cpp_gcc
RUN mkdir /home/user/myapp
ADD hello-world.cpp /home/user/myapp
WORKDIR /home/user/myapp
RUN g++ hello-world.cpp -o hello
CMD ["./hello"]

1)FROM 行表示构建是基于codenvy/cpp_gcc镜像进行的;
2)RUN 行表示执行mkdir命令创建目录/home/user/myapp;
3)ADD行表示添加文件hello-world.cpp到/home/user/myapp
4)WORKDIR 行表示切换工作目录为/home/user/myapp;
5)RUN 行表示执行g++命令编译;
6)CMD 行表示执行./hello命令。
1、通过hello-dockerfile文件创建镜像文件my-hello:v1

docker build -f ./hello-dockerfile -t my-hello:v1 .

在这里插入图片描述

2、查看镜像

docker images

在这里插入图片描述
3、运行镜像文件my-hello:v1

docker run my-hello:v1

在这里插入图片描述
4、查看容器
这个命令可以查看所有运行和停止的容器

docker ps -a

在这里插入图片描述
5、命令行进入运行my-hello:v1的容器

docker exec -it  CONTAINER_ID bash

从下图可以看出,这个容器中PID为1的进程就是hello应用本身
在这里插入图片描述
6、停止容器
此时执行docker ps -a命令可以看到该容器处于停止状态

docker stop CONTAINER_ID

在这里插入图片描述
7、删除容器
此时执行docker ps -a命令看不到该容器

docker rm -f CONTAINER_ID

在这里插入图片描述
8、删除镜像文件

docker rmi my-hello:v1

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐