linux运维、架构之路-Docker架构原理

一、Docker架构原理介绍

       Docker使用了C/S架构,客户端与守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过UNIX套接字或网络接口进行通信。

二、Docker介绍

       Docker的英文翻译是”搬运工“的意思,他搬运的东西就是我们常说的集装箱Container,Container里面装的是任意类型的App,我们的开发人员可以通过Docker 将App变成一种标准化的、可移植的、自管理的组件,我们可以在任何主流的操作系统中开发、调试和运行。Docker和虚拟机比较类似,只是更加轻量级,更加方便使用。

1、Docker和虚拟机区别:

  • 虚拟化技术依赖的是物理CPU和内存,是硬件级别的;而Docker是构建在操作系统层面的,利用操作系统的容器化技术,所以Docker同样的可以运行在虚拟机上面。
  • 虚拟机中的系统就是我们常说的操作系统镜像,比较复杂;而Docker比较轻量级,我们可以使用Docker部署一个独立的Redis,就像类似于在虚拟机当中安装一个Redis应用,但是我们用Docker部署的应用是完全隔离的。
  • 在传统的虚拟化技术是通过快照来保存的;而Docker引用了类似于源码的管理机制,将容器的快照历史版本一一记录下来,切换成本低。
  • 传统的虚拟化技术在构建系统的时候非常复杂;而Docker可以通过一个简单的Dockerfile文件来构建整个容器,更重要的是Dockerfile可以手动编写,这样应用开发人员可以通过发布Dockerfile来定义应用的环境和依赖,这样对于持续交付非常有利。

2、Docker安装

①安装指定版本docker

#docker官方提供了安装脚本,我们确认好版本就可以直接安装#
export VERSION=18.06
curl -fsSL "https://get.docker.com/" | bash -s -- --mirror Aliyun

②设置overlay2为默认存储驱动,并配置加速器

mkdir -p /etc/docker/
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://hjvrgh7a.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

要添加harbor仓库时需要在添加下面一行 "insecure-registries": ["harbor.demon.com"],默认docker hub需要https协议,使用上面配置不需要配置https。

③设置开机自启并设置docker命令补全

yum install -y epel-release bash-completion && cp /usr/share/bash-completion/completions/docker /etc/bash_completion.d/
systemctl enable --now docker

三、Docker基本操作

1、常用命令

①Docker镜像管理

  • 搜索镜像:docker search
  • 获取镜像:docker pull
  • 查看镜像:docker images
  • 删除镜像:docker rmi
  • 构建镜像:docker build -t <镜像名>

②Docker容器管理

  • 启动容器:docker run –name -h hostname
  • docker run -d -P nginx
  • -d运行在后台
  • -P 代表随机映射
  • nginx 镜像的名称
  • 停止容器:docker stop CONTAINER ID
  • 查看容器:docker ps -a -l
  • 进入容器:docker exec | docker attach |nsenter
  • 删除容器:docker rm
  • 查看容器日志:docker logs CONTAINER ID
  • 杀死所有正在运行的容器:docker kill $(docker ps -a -q)
  • 删除所有容器(只有先停止才可以删除):docker rm $(docker ps -a -q)

③Docker 网络访问

  • 随机映射:docker run -P
  • 指定映射:
  • -p hostPort:containerPort
  • -p ip:hostPort:containerPort

④Docker 查看容器映射信息

  • docker port mynginx #容器名称
  • 80/tcp -> 192.168.56.100:81
  • docker port 65439bce352e #容器ID
  • 80/tcp -> 192.168.56.100:81

⑤镜像导出导入

  • docker save nginx:latest > /home/nginx.tar
  • docker load < /home/nginx.tar

四、Docker 数据共享与持久化

1、数据卷 (Data Volumes)

       数据卷是一个可供一个容器或多个容器使用的特殊目录,数据卷的使用,类似于NFS挂载,镜像中被指定为挂载点的目录会隐藏掉,能显示看的是挂载的数据卷。

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会马上生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

①创建一个数据卷

[[email protected] ~]# docker volume create my-volume
my-volume

②查看数据卷

[[email protected] ~]# docker volume ls
DRIVER              VOLUME NAME
local               my-volume
如果使用的Docker有容器在运行,这里可能会不止一个。但是如果不添加-v参数,当容器停止或者删除时,volume同时也会被删除。

③使用inspect查看指定数据卷的信息

[[email protected] ~]# docker volume inspect my-volume
[
    {
        "CreatedAt": "2020-01-17T15:54:55+08:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/my-volume/_data",
        "Name": "my-volume",
        "Options": {},
        "Scope": "local"
    }
]

④启动一个挂载数据卷的容器

2、挂载主机目录 (Bind Mounts)

原文地址:https://www.cnblogs.com/yanxinjiang/p/12206291.html

时间: 2024-08-25 11:50:32

linux运维、架构之路-Docker架构原理的相关文章

51CTO学院老男孩教育Linux运维+顶级架构师课程攻略

51CTO学院老男孩教育Linux运维+顶级架构师课程 学习交流QQ群:384467551.390642196 老男孩教育官方网站:http://www.oldboyedu.com/ 重点推荐1 老男孩Linux高薪运维培训 课程总时长:330小时55分钟 (套餐) http://edu.51cto.com/topic/655.html 子套餐 51CTO学院Linux运维专题列表 1-老男孩Linux高薪运维入门实战 http://edu.51cto.com/course/6714.html

linux运维之路第一篇章:决心书

这一次很有毅力的选择了linux运维的这条路 为什么会这样选择? 自身往技术发展的需求! 身边朋友的推荐! 对在北京生活的一种追求! 来到北京很多人是想着挣钱的,我也是一样,在北京一家不知名的民办学校上了二年学,呵呵,就是野鸡大学,虽然学校对于教育放来来说不是怎么回事,但是对于技术方面还有两把刷子,可能自己对于网络有写喜欢,学了电子商务,工作之后做了SEO优化,到如今也有近两年的时间了.两年自己一直处在底薪阶层(3~6k),然而谁没有一个追求,展现自身更多的价值,拿更高的薪资,过上更好的生活,也

老男孩教育2016年linux运维在线教学课程大纲

老男孩教育2016年linux全科班大纲  linux运维全科班在线课程地址(直播加录播) http://edu.51cto.com/px/train/41   linux运维就业班在线课程地址(直播加录播) http://edu.51cto.com/px/train/40 课程详情: 本课程包含老男孩教育linux运维就业班及高级架构师班全部内容,更有python自动化基础课程. linux运维就业班课程: 核心课程至少经过8年锤炼,历经近30期讲解次数,体系完整,内容完善重点分明:包括有li

企业Linux运维几百个重点面试题汇总(持续更新)

目录: 第一部分:合格linux运维十五个必会原理知识(老男孩教育出品) http://user.qzone.qq.com/49000448/blog/1426386594 第二部分:合格linux运维必会MySQL 实战面试题近百个(老男孩教育出品)http://user.qzone.qq.com/49000448/blog/1427333863 第三部分:企业优秀运维人员20道必会iptables面试题 数十个(老男孩教育出品)http://oldboy.blog.51cto.com/256

【干货】马哥linux运维学院公开课-今晚课程介绍:《应运而生的架构》

一大波高质量Linux运维和自动化运维公开课正在来袭,你准备好了么? 2016为了感谢广大同仁对马哥linux运维学院的支持,经过内部商讨,特推出一系列公开课来助力大家在职场中的发展!接下来就跟随小编来瞧瞧马哥linux运维学院都为大家呈上了一份什么样的神秘干货大礼包??? 公开课列表 课程详情 1. O2O业务的运维挑战和解决之道2. AWK企业实战案例分享(上篇.下篇)3. 深入浅出三剑客--grep/sed/awk4. WEB安全攻防那些事5. PHP沙盒基于Docker的自动化实现6.

Linux运维需要懂什么web集群架构知识?

Linux运维需要懂什么web集群架构知识? 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

了解Linux运维要用到的web集群架构知识

了解Linux运维要用到的web集群架构知识 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz! log.latermoon.com/

《Linux运维架构师课程 - 门徒班》【招生中】

课程简介 阿良的课程内容主要以企业核心技术为讲解对象,避免过多在企业中很少用的技术,从而减少学习负担,这样就可以把精力主要花费在更重要的技术上, 而不像其他培训机构那样,讲很多高大上的技术名词,其中可能50%的知识在工作中都用不到,学员抓不住重点,时间长了就忘了.    所以,阿良的教学模式讲究是精益求精,"好钢用到刀刃上,只求精,不求多".    只要你肯学,阿良就肯教.帮助你掌握这门技能,成功就业,初学者月薪达到6000以上. 授课对象 ■ 计算机相关专业在校学生/应届生 ■ 网络