Docker知识点总结二

四、 Docker 架构

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。

介绍:

  • 1、Docker的客户端client,我们在命令行发送一些信息(命令)给Docker服务端。
  • 2、中间这个就是Docker的服务端,在这个服务端里面,它是一个引擎,用来管理容器的,所以用引擎我们可以基于镜像来创建容器。
  • 3、右边就是仓库,中心仓库就是Docker hub仓库,存放了成千上万的镜像。
  • 4、Docker容器通过Docker镜像来创建。
  • 有人会误以为,Docker就是容器,但Docker不是容器,而是管理容器的引擎。
容器的基本概念

容器是从镜像创建的运行实例。它可以被启动、停止、删除。每个容器都是相互隔离的、保证安全平台。可以把看做一个简易版的 Linux环境,包括root用户权限、进程空间、用户空间和网络空间和运行在其中的应用程序。

Docker利用容器来运行应用,镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

仓库的概念:

仓库是集中存放镜像文件的场所,有时候会把仓库和仓库注册服务器(Registry)看做同一事物,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag) ,tag你可以粗略理解为版本;

仓库分为公开仓库(Public)和私有仓库(Private)两种形式;最大的公开仓库是 Docker Hub(https://hub.docker.com/) ,存放了数量庞大的镜像供用户下载; 当然,用户也可以在本地网络内创建一个私有仓库;

当用户创建了自己的镜像之后就可以使用push命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull下来即可;

注:Docker仓库的概念跟Git类似,注册服务器也类似于GitHub这样的托管服务;

用户可通过docker search命令来查找官方仓库中的镜像: 例如 docker search tomcat,并利用docker pull命令来将它下载到本地:

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建;官方的镜像说明是官方项目组创建和维护的,automated资源允许用户验证镜像的来源和内容;

根据是否是官方提供,可将镜像资源分为两类:

一种是类似centos这样的基础镜像,被称为基础或根镜像。这些基础镜像是由Docker公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字;

还有一种类型,比如tianon/centos镜像,它是由Docker的用户创建并维护的,往往带有用户名称前缀。可以通过前缀user_name/来指定使用某个用户提供的镜像,比如tianon用户;

从Docker 仓库下载镜像到本地,镜像名称格式为 名称号:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。如果你反复执行pull,它会把这个镜像下载到最新版本。

docker pull 镜像名称 例如:docker pull tomcat

五、Docker使用示例

5.1、Docker安装MySQL

docker pull mysql (你也可以加上版本号,指定版本)

接下来我们运行mysql镜像并且访问容器:

docker run -d -p 3306:3306 mysql -e MYSQL_DATABASE = workdb -e MYSQL_ROOT_PASSWORD = 123456

到时候容器启动之后,你去访问mysql的时候,会有一个数据库的名字叫做workdb,密码123456

5.2、Docker安装nginx

下载Nginx镜像:

docker pull nginx

docker run -d -p 80:80 nginx

docker exec -it 容器id bash (用docker ps 查看容器id)

​​​​​​​

访问nginx: http://123.57.144.31:80

相关推荐
道路与代码之旅14 小时前
Delphi - IndyHttpServer接收上传文件
运维·服务器
烦躁的大鼻嘎15 小时前
【Linux】深入Linux多线程架构与高性能编程
linux·运维·服务器·开发语言·c++·ubuntu
羚羊角uou15 小时前
【Linux】system V共享内存
linux·运维·服务器
林克爱塞尔达15 小时前
Linux入门(二)
linux·运维·chrome
Hello.Reader15 小时前
Kafka 运维实战基本操作含命令与最佳实践
运维·kafka·linq
存储服务专家StorageExpert16 小时前
手搓一个 DELL EMC Unity存储系统健康检查清单
linux·运维·服务器·存储维护·emc存储
SonOfWind031116 小时前
CentOS搭建本地源
linux·运维·centos
IT成长日记17 小时前
【Nginx开荒攻略】Nginx主配置文件结构与核心模块详解:从0到1掌握nginx.conf:
linux·运维·nginx·配置文件
代码的余温17 小时前
Web服务器VS应用服务器:核心差异解析
运维·服务器·前端
NiKo_W18 小时前
Linux 开发工具(1)
linux·运维·服务器