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

相关推荐
jerryinwuhan10 分钟前
1210_1 Linux
linux·运维·服务器
福尔摩斯张1 小时前
Linux信号捕捉特性详解:从基础到高级实践(超详细)
linux·运维·服务器·c语言·前端·驱动开发·microsoft
Empty_7771 小时前
K8S-中的优先级
云原生·容器·kubernetes
cypking2 小时前
Nuxt项目内网服务器域名代理访问故障排查
运维·服务器·php
破刺不会编程2 小时前
socket编程TCP
linux·运维·服务器·开发语言·网络·网络协议·tcp/ip
gxh19922 小时前
4步将HTTP请求升级为HTTPS
运维·服务器·网络协议·http·https
云和数据.ChenGuang3 小时前
运维工程师技术之nfs共享文件系统
运维·服务器·运维技术·数据库运维工程师·运维教程
❀͜͡傀儡师3 小时前
Docker部署Rustscan端口扫描工具
运维·docker·容器
❀͜͡傀儡师3 小时前
Docker 启动 PostgreSQL 主从架构:实现数据同步
docker·postgresql·架构
feng_blog66884 小时前
cursor通过ssh连接远程服务器
运维·服务器·ssh