Docker 底层原理和基本命令(帮助命令、镜像命令、容器命令)

 

目录

 

Docker底层原理

Docker常用命令

帮助命令

镜像命令

本节点内容

docker images 某个XX镜像的名字

docker -a

docker images -aq

docker --digests

docker images --digests --no-trunc

docker search

本节点内容

docker pull 某个XX镜像的名字

本节点内容

docker pull tomcat

docker rmi 某个XX镜像的名字

本节点内容

容器命令上

本节点内容

新建并启动 docker pull centos

列出当前所有正在运行的容器

退出容器

启动容器

本节点内容

重启容器、停止容器、强制停止容器、删除已停止容器


  • Docker底层原理

前言:Docker是Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。容器,是一个运行时环境,就是我们前面说到的集装箱。

Docker是怎么工作的?

为什么Docker比虚拟机快?

  • Docker常用命令

  • 帮助命令

docker version 

docker info前提:必须在docker 启动的情况下,才会有返回结果,启动命令 sudo systemctl start docker

docker -help

  • 镜像命令

前言:镜像相当于类,可以生成多个容器。

  • 本节点内容

 

      

  • docker images 某个XX镜像的名字

sudo systemctl start docker(启动容器的前提下)

> docker images

返回结果如下图:

解析:

  • docker -a

> docker images -a

返回结果如下图:

解析:

  • -a 相当于all

  • 镜像Image可以把它当成千层饼,像花卷一样一层套一层,如果TAG下面显示的是<none>,比如说手里拿的是鸡蛋,你直接接触的是鸡蛋的壳,里面还有蛋黄和蛋白,上述返回的信息就是最外面暴露的就是hello-world
  • docker images -aq

> docker images -qa

返回结果如下图:

解析:

显示当前所有镜像的image id

  • docker --digests

> docker --digests

返回结果如下图:

  • docker images --digests --no-trunc

> docker images --digests --no-trunc

返回结果如下图:

  • docker search

  • 本节点内容

> docker search

注意:你可能在执行的时候,docker search tomcat可能会无返回!如果配置没有问题,只需要再等待一会再次执行即可![OPTIONS]表示可以省略

疑问:search是什么意思呢?是去https://hub.docker.com中查询!如果您注册了阿里云账号,并且已经在配置中修改成阿里云加速器,搜索是在搜索,但是下载是从阿里云下载!!!

返回结果如下图:

  1. 如果在hub中搜索,tomcat点进去会有docker pull tomcat

  2. 删选镜像命令

    3.总结

> docker search [OPTIONS] 镜像名字

> docker search [-s 30] tomcat

> docker search --automated tomcat
 
  • docker pull 某个XX镜像的名字

  • 本节点内容

  • docker pull tomcat

> docker pull tomcat --下载镜像等价于docker pull tomcat:latest
-- public class Book 等价于 public class Book extends Object
  • docker rmi 某个XX镜像的名字

  • 本节点内容

   

> docker rmi hello-world

> docker rmi -f hello-world --删除单个

> docker pull hello-world 

> docker images

> docker pull ngnix

> docker rmi -f hello world ngnix --删除多个

> docker images -qa --显示当前所有镜像的image id

> docker rmi -f $(docker images -qa)-- sql 删除类似where uid in(uid1,uid2)

返回结果如下图:

  • 容器命令上

前言:有镜像才会有容器,这里就不必多说了,之前我们一直操作宿主机是Win7,又上面安装VMA,其VMA安装了Linux,Linux上面安装了Docker或者Nginx,现在我们从hub上搜索Cent.OS,从aliyun上面下载CentOS,这个和之前不一样哦,也就是说Docker既可以安装tomcat或者Nginx,也可以安装CentOS。

  • 本节点内容

  • 新建并启动 docker pull centos

[root@192 ~]# docker pull centos 
Using default tag: latest
latest: Pulling from library/centos
729ec3a6ada3: Pull complete
Digest: sha256:f94c1d992c193b3dc09e297ffd54d8a4f1dc946c37cbeceb26d35ce1647f88d9
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest


[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        3 months ago        220MB

-- 可以看到的是size是200MB,我们的本地CentOS镜像是4GB左右,所以这个是精简的Linux系统,快!

[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        3 months ago        220MB


[root@192 ~]# docker run -it centos // i是交互,t代表伪终端
// 假设你登录docker里面的centos,登录成功以后怎么通知docker我要和你交互,以下的ls等命令,相当于你在docker的centos里面自动打开终端命令窗口输入各种命令
// centos为模板,生成了@56...的容器,如下返回结果为568db13fab74,568db13fab74可以把它看成对象的一个地址。
[root@568db13fab74 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@568db13fab74 /]# pwd
/ //表示在centos 的根目录之下


[root@568db13fab74 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 08:00 pts/0    00:00:00 /bin/bash
root         16      1  0 08:08 pts/0    00:00:00 ps -ef


// Linux里面查询查询所有进程ps -ef,docker里面的所有进程(鲸鱼背上的所有集装箱有哪些?)docker ps
[root@192 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@192 ~]#

  • 列出当前所有正在运行的容器

-- ps  linux的当前全部进程

--docker ps 是docker里面运行的全部进程

[root@192 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              latest              0f3e07c0138f        3 months ago        220MB
// 查询当前docker所有镜像

[root@192 ~]# ps
   PID TTY          TIME CMD
 26925 pts/1    00:00:00 bash
 27067 pts/1    00:00:00 ps
// 查询当前Linux正在执行的进程

[root@192 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
9de461d39652        0f3e07c0138f        "/bin/bash"         15 minutes ago      Up 15 minutes                           relaxed_keldysh
// 查询当前Docker正在执行的进程,即鲸鱼背上有哪几个集装箱,docker哪个镜像在跑

  • 退出容器

  • 启动容器

  • 本节点内容

[root@9de461d39652 /]# exit
exit
// 退出并且关闭容器
[root@192 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@192 ~]# docker ps -l // 查看上一个容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
9de461d39652        0f3e07c0138f        "/bin/bash"         21 minutes ago      Exited (0) 2 minutes ago                       relaxed_keldysh
[root@192 ~]# docker ps -a // 当前运行和过往的
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
9de461d39652        0f3e07c0138f        "/bin/bash"         22 minutes ago      Exited (0) 2 minutes ago                          relaxed_keldysh
568db13fab74        centos              "/bin/bash"         35 minutes ago      Exited (127) 24 minutes ago                       charming_dirac
403314d42320        fce289e99eb9        "/hello"            20 hours ago        Exited (0) 20 hours ago                           exciting_satoshi
[root@192 ~]# docker ps -n 3 // 上3次运行过的显示出来
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
9de461d39652        0f3e07c0138f        "/bin/bash"         23 minutes ago      Exited (0) 3 minutes ago                          relaxed_keldysh
568db13fab74        centos              "/bin/bash"         36 minutes ago      Exited (127) 25 minutes ago                       charming_dirac
403314d42320        fce289e99eb9        "/hello"            20 hours ago        Exited (0) 20 hours ago                           exciting_satoshi


[root@192 ~]# docker ps -q  // 只显示容器编号
[root@192 ~]# docker ps -l  // 查看上一个容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
9de461d39652        0f3e07c0138f        "/bin/bash"         24 minutes ago      Exited (0) 4 minutes ago                       relaxed_keldysh
[root@192 ~]# docker ps -lq  // 查看上一个容器的容器编号
9de461d39652
[root@192 ~]#

  • 重启容器、停止容器、强制停止容器、删除已停止容器

发布了206 篇原创文章 · 获赞 49 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/Sicily_winner/article/details/103826299