IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker -> 正文阅读

[系统运维]Docker

Docker概念:

????????

  • ?Docker 是一个开源的应用容器引擎,诞生于2013年初,基于 Go 语言 并遵从Apache2.0协议开 源。
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任 何流行的
  • Linux 机器上,也可以实现虚拟化
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)
  • 更重要的是容器性能开销极低。

小结:docker是一种容器技术,解决软件跨环境迁移的问题

Docker应用场景:?

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

LXC(linux container)与dockers关系

  • Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和控制资源分配
  • Docker并不是LXC的替代品,Docker的底层就是使用了LXC来实现的。LXC将Linux进程沙盒化,使得进程之间 相互隔离,并且能够控制各进程的资源分配。
  • 在LXC的基础之上,Docker提供了一系列更强的功能。 Linux容器(lxc) linux container(namespaces命名空间 隔离环境 及cgroups资源限制) cgroups 限制一个进程能够使用的资源 cpu 内存 硬盘 IO kvm虚拟机: 资源限制(1核 1G 20G)

容器的核心技术:

容器的核心技术是 Cgroup + Namespace

容器 = cgroup + namespace + rootfs + 容器引擎

? Cgroup: 资源控制

? namespace: 访问隔离

? rootfs:文件系统隔离。镜像的本质就是一个rootfs文件 ? 容器引擎:生命周期控制

Docker中的三个基本概念

  • Image(镜像) ---IOS
  • Container(容器) ---镜像运行
  • Repository(仓库)

镜像是 Docker 运行容器的前提,仓库是存放镜像的场所,可见镜像更是 Docker 的核心。

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

Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务

Docker引擎

docker引擎是一个c/s结构的应用,

主要组件:

?? Server是一个常驻进程

? REST API 实现了client和server间的交互协议

? CLI 实现容器和镜像的管理,为用户提供统一的操作界?

Docker安装

环境准备:

由于 Docker-CE 支持 64 位版本的 CentOS 7 ,并且要求内核版本不低于 3.10

进行检查命令:

在进行安装之前,我们先删掉其旧版本?

命令:yum remove docker

安装依赖包:

[root@model ~]# yum install -y yum-utils device-mapper-persistent-data vm2

安装docker:

root@gitlab-server harbor]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#注 意源 [root@gitlab-server yum.repos.d]# sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/ yum.repos.d/docker-ce.repo

查看安装版本:

安装docker-ce ,社区版

查看docker版本?

启动docker-ce?

显示docker镜像信息以及容器数量?

Docker进程相关命令

启动 docker 服务?:systemctl start docker

停止 docker服务 :systemctl stop docker

重启 docker 服务 :systemctl restart docker

查看 docker 服务状态: systemctl status docker

开机启动 docker 服务: systemctl enable docker

配置镜像加速器:

?

在进行一下命令,守护线程,重启docker

Docker镜像相关命令:

查看镜像:查看本地所有的镜像 docker images

docker images -q # 查看所用镜像的id

搜索镜像:从网络中查找需要的镜像 docker search 镜像名称

拉取镜像 :从Docker仓库下载镜像到本地,镜像名称格式为名称 :版本号,如果不指定则是最新的版 本,如果不知道 镜像版本,可以去 docker hub搜索对应的镜像查看

docker pull 镜像名称

删除镜像:删除本地镜像 docker rmi 镜像id # 删除指定本地镜像

docker rmi 'docker images -q' # 删除所有本地镜像

镜像导出:[root@model ~]# docker save docker.io/nginx:latest>docker_nginx.tar.gz

镜像导入:[root@model ~]# yum -y install bash-completion ##智能补齐

? ? ? ? ? ? ? ? ? [root@model ~]# docker load -i docker_nginx.tar.gz????????????????????????????????????????

? ? ? ? ? ? ? ? ? [root@model opt]# docker image load -i docker_nginx.tar.gz

Docker容器相关命令:

创建启动镜像:

?run (创建并运行一个容器)

-d 后台

-p 端口映射

-v 源地址( 宿主机):目标地址(容器) nginx 镜像的名字

查看容器:可以看得到就有刚刚我们在上面启动的nginx镜像

?访问nginx

查看容器:?

启动容器: 可以看到上面的tomcat2有关闭变成启动了

?删除容器:

删除所有容器:docker rm `docker ps -a -q`

关闭容器:?

?进入某个容器:注意的是只有当启动运行的时候,才能进入它内部

?容器的数据卷:

数据卷的作用及概念:

问题一:docker容器删除后,容器的数据还在吗?

问题二:docker容器和外部机器可以直接交换文件吗?

问题三:容器之间如何进行数据交换?

这些问题接下来,下面的图片可以清晰明了地告诉你们:?

数据卷:?

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器挂载
  • 一个容器也可以挂载多个数据卷

? ?

?数据卷的作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 容器之间数据交换?

.?数据卷容器

多容器进行数据交换

1. 多个容器挂载同一个数据卷

2. 数据卷容器?

docker小总结:?

docker其实就是一种容器技术,解决软件跨环境迁移的问题,我们软件有几个环境,分别是开发环境,测试环境以及生产环境,在没有使用docker之前,开发环境需要将应用达成war先交由测试环境测试,再交由生产环境,这期间会产各种意想不到的问题,“水土不服”,而docker容器就很好解决这个问题,将开发者的应用以及各种依赖包放到一个轻量级,可移植的容器中,然后就可以在各个环境中很好进行测试,很好解决软件跨环境的问题。

? ? ? ? ?docker的三大组件就是镜像(image),容器(container),仓库(repository)

镜像是 Docker 运行容器的前提,仓库是存放镜像的场所,可见镜像更是 Docker 的核心。

容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。容器的核心技术就Cgroup资源控制,以及namespace进程隔离。

Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-17 15:47:33  更:2021-08-17 15:49:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:31:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码