Dokcer Image、container、常用命令(二)
1、Docker Image
Image(镜像)就是一堆只读层(read-only layer)的统一视角。从左边我们看到了多个只读层,它们重叠在一起。除了最下面一层,其它层都会有一个指针指向下一层。这些层是Docker内部的实现细节,并且能够 在主机(译者注:运行Docker的机器)的文件系统上访问到。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。 我们可以在图片的右边看到这个视角的形式。
#docker hub里面有很多很多的镜像:
https://hub.docker.com/
#搜索命令
docker search centos
#拉取命令
docker pull centos
#查询命令
docker image ls
#docker images
2、 制作一个helloword image
2.1、环境准备
#创建目录
mkdir -p /usr/local/docker/image/helloworld
#进入目录
cd /usr/local/docker/image/helloworld
#创建c语言的helloworld
vim hello.c
#include <stdio.h>
int main() {
printf("hello world!\n");
}
#安装环境
yum -y install gcc yum -y install glibc-static
#编译环境hello.c
gcc -static hello.c -o hello
#验证
./hello
2.2、创建Dockerfile文件
#创建DockerFile
vim Dockerfile
#FROM scratch:不以任何镜像为基础;ADD:一个复制命令,把文件复制到景象中。CMD:执行命令
FROM scratch
ADD hello /
CMD ["/hello"]
2.3、创建image
#docker buld -t TAGNAME 目录
docker build -t zhuzhu/hello-world .
#运行
docker run zhuzhu/hello-world
4、container
4.1、Container介绍
1)要有Container首先要有Image,也就是说Container是通过image创建的。
2)Container是在原先的Image之上新加的一层,称作Container layer,这一层是可读可写的(Image是只读的)。
3)在面向对象的编程语言中,有类跟对象的概念。类是抽象的,对象是类的具体实现。Image跟Container可以类比面向对象中的类跟对象,Image就相当于抽象的类,Container就相当于具体实例化的对象。
4)Image跟Container的职责区别:Image负责APP的存储和分发,Container负责运行APP。
4.2、基础命令
#运行container
docker run zhuzhu/hello-world
#查看当前运行的docker
docker container ls
#查看所有的容器,运行的&&退出的
docker container ls -a
#删除以往记录 container rm id
docker container rm 807aee8c94e9
#全部删除
#获取全部的ID -q获取id
docker container ls -aq
#删除
docker rm $(docker container ls -aq)
5、其它命令
5.1、把一个container重新制作成image
#交互的运行一个镜像
docker run -it centos
#运行vim 发现该镜像没有vim,安装vim
yum install -y vim
#退出
exit
#把退出的container制作成image
docker container ls -a
#制作,docker commit 容器名称 镜像名称
docker commit mystifying_lehmann zhuzhu/centos-vim
#验证
docker run -it zhuzhu/centos-vim
vim
5.2、通过Dockerfile创建centos-vim
#删除原来的centos-vm镜像
docker image rm f9279a3b211d
#创建文件目录里
mkdir -p /usr/local/docker/image/vimcentos
cd /usr/local/docker/image/vimcentos
#创建Dockerfile
vim Dockerfile
#内容
FROM centos
RUN yum install -y vim
#构建image
#buid -t 名字 .当前目录
docker build -t zhuzhu/centos-vim .
#测试
docker images
docker run -it zhuzhu/centos-vim
还没有评论,来说两句吧...