Docker的三要素:镜像,容器,仓库,及相关命令

Docker的三要素:镜像,容器,仓库


Docker是利用容器独立运行的一个或一组应用,容器是用镜像创建的运行实例

它可以被启动,开始,停止,删除。每个容器都是相互隔离的,保证安全的平台。可以把容器看作是一个简易版的Linux环境(包括root用户权限,进程空间,用户空间,网络空间等)和运行在其中的应用程序

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器最上面那一层是可读可写的

 

仓库:是集中存放镜像文件的场所

仓库和仓库注册服务器是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(类似版本号)

仓库分为公开仓库,和私有仓库两种形式

最大的仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内公开的仓库包括阿里云和网易云等

 

需要正确理解仓储,镜像,容器这几个概念:

Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。

只有通过这个镜像文件才能生成Docker容器。image文件可以看作是容器的模板。

Docker根据image文件生成的容器实例。

 同一个image文件,可以生成多个同时运行的容器实例。

image文件生成的容器实例,本身也是一个文件,称为镜像文件。

一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器。

至于仓库,就是放了一堆镜像的地方,我们可以把镜像发布到仓库中去,需要的时候从仓库拉下来就行。

 

Docker是怎么工作的?

Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。

容器,是一个运行时环境

 

 

 

 

 

 

Docker镜像的基本命令:

帮助命令

docker version    打印当前docker版本信息

docker  info  打印docker更详细的信息,插件信息和镜像信息,和容器数量

docker --help   帮助命令,不会就查这个

 

 

镜像命令:

docker images    显示所有的镜像

docker images --help   查看这个命令的帮助信息

 

##解释

REPOSITORY :镜像的仓库源

TAG :镜像的标签

IMAGE ID :镜像的ID

CREATED :镜像创建时间

SIZE:镜像的大小

 

##可选项

docker images -a     #列出所有的镜像

docker images -q    #列出镜像的id

docker images -aq   #列出所有的镜像的id

 

docker search   搜索镜像 ,例如:docker search tomcat

docker pull  镜像名 ,下载镜像   例如:docker pull mysql

 

指定版本下载镜像

docker pull mysql:5.7  

 

删除镜像

docker rmi -f   镜像ID1 镜像ID2 镜像ID3   删除多个镜像

docker rmi -f   镜像ID   通过ID删除某一镜像

docker rmi -f $(docker images -aq)    通过命令递归删除所有镜像

 

 

 

 

Docker之容器命令

说明,有了镜像才可以创建容器

创建容器

docker craate --name=容器名称  所在镜像名称

docker craate --name=myTomcat  tomcat

 

启动容器
docker start   容器id 

重启容器

docker restart 容器id

停止当前容器

docker stop 

杀死容器,强制停止容器

docker  kill  

查看已运行的容器

docker ps

查看所有的容器

docker ps -a

 

 

 

 docker  run -it  centos    /bin/bash    ##启动并进入到容器

注意:首先,docker run -it centos 的意思是,为centos这个镜像创建一个容器
-it就等于 -i和-t,这两个参数的作用是,为该docker创建一个伪终端,这样就可以进入到容器的交互模式?(也就是直接进入到容器里面)

后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。

创建容器并进入命令行

 docker  run -it  --name=myTomcat  tomcat   /bin/bash

从容器中退回主机的命令:exit

列出所有运行中的容器:docker ps

 列出所有运行中的容器包括曾经运行过的容器:docker ps -a

列出最近创建的容器:docker ps -a -n=1     (最近创建的1个)

只显示容器的编号:docker ps -aq  

 

退出容器:

exit  ##停止容器,并退出

Ctrl +P +Q  ##容器不停止退出

 

删除容器

docker rm  容器id   ##删除指定容器,不能删除正在运行的容器,强制删除要加  -f

删除所有容器,先停掉容器

docker  stop $(docker ps -a -q) 

docker rm -f $(docker ps -aq)    ##删除所有的容器

 

常用的其他命令(重要)

启动守护式容器:docker run -d  容器id  

docker容器后台运行

 

查看容器中进程的命令

docker top  容器id

UID  是用户ID

PID 是父ID 

PPID  是进程ID

 

运行容器的命令

docker run 后面的参数

docker run -i  运行容器

docker run -d  守护进程,后台运行

docker run -t   容器启动后,进入命令行

docker run -v   目录映射 --挂载

 

查看日志命令

docker logs

 

查看镜像的元数据

docker inspect   容器id

 

退出容器后,想重新进入当前正在运行的容器

docker exec -it  容器id   /bin/bash

或者

docker attach 容器ID

上述两个命令有什么区别呢?attach是直接进容器启动命令终端,不会启动新的进程

exec是在容器中打开新的终端,并且可以启动新的进程

 

 

 

 

 

访问tomcat(重点)

启动并作为守护进程

 

-P 宿主机的端口:容器应用里的端口

war包挂载宿主机 -v   宿主机路径:容器路径

docker exec -it mytomcat6 /bin/bash

docker run  -di --name=mytomcat7  -p  5555:8080  -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps  to

 

posted @ 2020-12-14 10:40  小boboa  阅读(254)  评论(0编辑  收藏  举报