Dokcer Image、container、常用命令(二)

ゞ 浴缸里的玫瑰 2024-04-17 06:28 119阅读 0赞

1、Docker Image

Image(镜像)就是一堆只读层(read-only layer)的统一视角。从左边我们看到了多个只读层,它们重叠在一起。除了最下面一层,其它层都会有一个指针指向下一层。这些层是Docker内部的实现细节,并且能够 在主机(译者注:运行Docker的机器)的文件系统上访问到。统一文件系统(union file system)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。 我们可以在图片的右边看到这个视角的形式。
在这里插入图片描述

  1. #docker hub里面有很多很多的镜像:
  2. https://hub.docker.com/

在这里插入图片描述

  1. #搜索命令
  2. docker search centos

在这里插入图片描述

  1. #拉取命令
  2. docker pull centos
  3. #查询命令
  4. docker image ls
  5. #docker images

在这里插入图片描述

2、 制作一个helloword image

2.1、环境准备

  1. #创建目录
  2. mkdir -p /usr/local/docker/image/helloworld
  3. #进入目录
  4. cd /usr/local/docker/image/helloworld
  5. #创建c语言的helloworld
  6. vim hello.c
  7. #include <stdio.h>
  8. int main() {
  9. printf("hello world!\n");
  10. }
  11. #安装环境
  12. yum -y install gcc yum -y install glibc-static
  13. #编译环境hello.c
  14. gcc -static hello.c -o hello
  15. #验证
  16. ./hello

在这里插入图片描述
2.2、创建Dockerfile文件

  1. #创建DockerFile
  2. vim Dockerfile
  3. #FROM scratch:不以任何镜像为基础;ADD:一个复制命令,把文件复制到景象中。CMD:执行命令
  4. FROM scratch
  5. ADD hello /
  6. CMD ["/hello"]

在这里插入图片描述
2.3、创建image

  1. #docker buld -t TAGNAME 目录
  2. docker build -t zhuzhu/hello-world .
  3. #运行
  4. 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、基础命令

  1. #运行container
  2. docker run zhuzhu/hello-world
  3. #查看当前运行的docker
  4. docker container ls
  5. #查看所有的容器,运行的&&退出的
  6. docker container ls -a
  7. #删除以往记录 container rm id
  8. docker container rm 807aee8c94e9
  9. #全部删除
  10. #获取全部的ID -q获取id
  11. docker container ls -aq
  12. #删除
  13. docker rm $(docker container ls -aq)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、其它命令

5.1、把一个container重新制作成image

  1. #交互的运行一个镜像
  2. docker run -it centos
  3. #运行vim 发现该镜像没有vim,安装vim
  4. yum install -y vim
  5. #退出
  6. exit
  7. #把退出的container制作成image
  8. docker container ls -a
  9. #制作,docker commit 容器名称 镜像名称
  10. docker commit mystifying_lehmann zhuzhu/centos-vim
  11. #验证
  12. docker run -it zhuzhu/centos-vim
  13. vim

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5.2、通过Dockerfile创建centos-vim

  1. #删除原来的centos-vm镜像
  2. docker image rm f9279a3b211d
  3. #创建文件目录里
  4. mkdir -p /usr/local/docker/image/vimcentos
  5. cd /usr/local/docker/image/vimcentos
  6. #创建Dockerfile
  7. vim Dockerfile
  8. #内容
  9. FROM centos
  10. RUN yum install -y vim
  11. #构建image
  12. #buid -t 名字 .当前目录
  13. docker build -t zhuzhu/centos-vim .
  14. #测试
  15. docker images
  16. docker run -it zhuzhu/centos-vim

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,119人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Dokcer详解()

    [Dokcer详解(一)][Dokcer] 一,Docker镜像 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好

    相关 Linux 命令

    Linux 之 网络操作相关命令 ifconfig > 作用 > fconfig⽤用于查看和更更改⽹网络接⼝口的地址和参数,包括IP地址、⽹网络掩 码、⼴广播地

    相关 Kubectl命令

    Kubectl是一个用于操作kubernetes集群的命令行接口,通过利用kubectl的各种命令可以实现各种功能,是在使用kubernetes中非常常用的工具。 接下来我们