博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker技术之基本命令
阅读量:5118 次
发布时间:2019-06-13

本文共 3082 字,大约阅读时间需要 10 分钟。

  我们使用基本命令之前,先来普及一下操作中使用的基本概念

    镜像   image

    容器   container

    仓库   repository

镜像

  Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等) 。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

  镜像构建时,会一层层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。

容器

  镜像(Image) 和容器(Container) 的关系,就像是面向对象程序设计中的 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会把容器和虚拟机搞混。

仓库
  镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,DockerRegistry 就是这样的服务。
  

  基本应用

  1) 查看所有镜像

docker images

  2)  拉取镜像

docker pull [选项] [Docker Registry地址]
<仓库名>
:
<标签>

  3) 运行一个新容器并给它起个名字

docker run -it --name temp ubuntu:16.04# -i 交互式操作# -t 终端# --name temp 容器起名字为temp# ubuntu:16.04:这是指用 ubuntu:16.04 镜像为基础来启动容器

  输入命令vim,git等命令,可以看到命令都无法使用,可以确定我们使用的是一个纯净的容器。

  4) 查看容器列表

docker ps  # 查看启动了的容器docker ps -a  # 查看所有的容器(启不启动都算)

  5) 启动容器

docker start temp  # temp可以是容器名或者id(id在ps命令中可以看到)

  6) 运行容器

docker exec -it temp bash# -i 交互式操作# -t 终端# bash:放在镜像名后的是命令。这里我们希望有个交互式 Shell,因此用的是 bash(开启一个人机交互的窗口)。

  7)   删除镜像

1)docker ps -a   查询容器CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                                      NAMES6adbd1b933a9        nginx:alpine        "nginx -g 'daemon of…"   11 minutes ago      Up 11 minutes               0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   dnmp-nginx7ba3e71d7310        nginx               "/bin/bash"              47 hours ago        Exited (127) 47 hours ago                                              goofy_bhaskara70278207ab92        mysql:8.0.11        "docker-entrypoint.s…"   12 days ago         Up 11 minutes               0.0.0.0:3306->3306/tcp                     dnmp-mysql884a717efe4e        dnmp_php            "docker-php-entrypoi…"   12 days ago         Up 11 minutes               9000/tcp                                   dnmp-php2)删除指定容器docker rm 884   //删除PHP3)docker images   查询镜像REPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              7042885a156a        11 days ago         109MBdnmp_php            latest              172f496bb458        12 days ago         535MBnginx               alpine              315798907716        13 days ago         17.8MBredis               4.0                 b00f982f9bf7        3 weeks ago         83.4MBphp                 7.2-fpm             2bd622691e6e        4 weeks ago         371MBmysql               8.0.11              5dbe5b6313e1        5 months ago        445MB4)删除镜像docker rmi 5db

 

  注意点:

  1. 删除前需要保证容器是停止的  stop

  2. 需要注意删除镜像和容器的命令不一样。 docker rmi ID  ,其中 容器(rm)  和 镜像(rmi)

  3. 顺序需要先删除容器

 

       好了,到这里我们先介绍了一些基本的并且使用概率较高的命令,下一节,我们将使用更为复杂的命令进行相关操作。

转载于:https://www.cnblogs.com/xingxia/p/docker-command1.html

你可能感兴趣的文章
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如何在Access2007中使用日期类型查询数据
查看>>
Jzoj4757 树上摩托
查看>>