容器云

认识容器

容器简介

容器是一种轻量级的、可移植的、自包含的软件打包技术

本质:一组受到资源限制且彼此间相互隔离的进程

与虚拟化技术的区别

传统虚拟化技术
虚拟了一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程
容器
可共享同一个操作系统的内核,将应用进程与系统其他部分隔离开
资源有限时,想部署轻量级应用,容器更有优势

docker容器

定义:一个开源的应用容器引擎

三大技术

Namespace
分离进程树、网络接口、挂载点以及进程间通信等资源的方法
docker就是通过namespace对不同的容器实现隔离
Cgroups
作用:限制某个或某些进程的资源分配
AUFS
能透明地覆盖一或多个现有文件系统的层状文件系统,支持将不同目录挂载到同一个虚拟文件系统下的文件系统
  • 可以把不同的目录组合在一起,形成一个单一目录
是一种虚拟化技术,不用格式化,直接挂载
Copy on Write(写入复制)
  • 可以把多层合并文件系统的单层表示

docker的优势

更高效地利用系统资源
更快速的交付和部署
更高效的部署和扩容
更简单的管理

Docker容器的系统架构

docker的架构
C/S架构
  • 使用远程API管理和创建docker容器
docker的组件
docker daemon服务器
docker客户端
docker镜像
  • 是一个只读模板,用于创建docker容器

    • 由Dockerfile描述镜像内容
  • 自定义镜像

    • 起因:docker hub提供的镜像无法满足日常工作需求

    • 方法

      • Docker Commit

      • Dockerfile

docker仓库
  • 用于集中存放镜像文件的场所

  • 分类

    • 互联网公共镜像仓库:Docker Hub

    • 私有镜像仓库:Registry

docker容器
  • 一个镜像的运行实例

  • 在宿主机操作系统的用户空间中运行,与操作系统其他进程隔离

Docker容器的实训

Docker引擎的安装

基础环境配置

配置yum源
vi /etc/yum.repod.s/local.repo
  • [kubernetes]

  • name=kubernetes baseurl=file:///root/Docker

  • gpgcheck=0

  • enabled=1

升级系统内核
yum upgrade -y
uname -r
配置防火墙和SELinux
systemctl stop firewalld && systemctl disable firewalld
iptables -t filter -F
iptables -t filter -X
iptables -t filter -Z
/usr/sbin/iptables-save
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
reboot
开启路由转发
cat >> /etc/sysctl.conf << EOF
net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
modprobe br_netfilter
sysctl -p

Docker引擎安装

安装依赖包
yum install -y yum-utils device-mapper-persistent-data
安装docker-ce
yum install docker-ce-18.09.6 docker-ce-cli-18.09.6 containerd.io -y
启动docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
查看docker系统信息
docker info

Docker仓库的使用

构建私有仓库

在搭建好docker的环境下运行 Registry仓库
./image.sh
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
查看运行情况
docker ps

私有仓库的使用

上传镜像
cat /etc/docker/daemon.json
{ “insecure-registries”: [“10.18.4.30:5000”] }
systemctl restart docker
为镜像打上标记
docker tag centos:latest 10.18.4.30:5000/centos:latest
上传标记的镜像
docker push 10.18.4.30:5000/centos:latest
curl 命令查看仓库中的镜像
curl -L http://10.18.4.30:5000/v2/_catalog
拉取镜像
docker pull 10.18.4.30:5000/centos:latest

Docker仓库

构建https证书

生成 CA 证书
mkdir -p /data/ssl
cd /data/ssl/
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 2.235 -out ca.crt
生成证书签名请求
openssl req -newkey rsa:4096 -nodes -sha256 -keyout www.yidaoyun.com.key -out www.yidaoyun.com.csr
生成注册表主机的证书
openssl x509 -req -days 2.235 -in www.yidaoyun.com.csr -CA ca.crt 10 -CAkey ca.key -CAcreateserial -out www.yidaoyun.com.crt
分发证书
cp -rfv www.yidaoyun.com.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust enable
update-ca-trust extract

安装 docker-compose

mv docker-compose /usr/local/bin/
chmod +x /usr/local/bin/docker-compose
docker-compose --version

安装Harbor仓库

下载 Harbor 安装包
tar -zxvf harbor-offline-installer-v1.5.3.tgz -C /opt/
进入到 harbor 目录
cd /opt/harbor/
编辑配置文件
vi harbor.cfg
  • hostname = 10.24.2.37 #修改 harbor 的启动 ip,这里需要依据系统 ip 设置

  • ui_url_protocol = https #启用加密传输协议 https

  • ssl_cert = /data/ssl/www.yidaoyun.com.crt #证书的位置

  • ssl_cert_key = /data/ssl/www.yidaoyun.com.key #证书密钥位置

  • harbor_admin_password = 000000 #修改 harbor 的 admin 用户的密码

安装 Harbor
./prepare

镜像管理与安全

配置本地 deamon.json 文件
{ “registry-mirrors”: [“https://5twf62k1.mirror.aliyuncs.com”], “insecure-registries”: [“10.24.2.37”] }
systemctl restart docker
重新启动 Harbor 私有镜像仓库
./prepare
清理所有 Harbor 容器进程
cd /opt/harbor
docker-compose down
docker-compose up -d
上传镜像
docker tag centos:latest 10.24.2.37/library/centos:latest
docker login https://10.24.2.37
docker push 10.24.2.37/library/centos:latest
重新启用漏洞扫描
./install.sh --with-notary --with-clair

Docker镜像和容器的使用

镜像的基本管理和使用

查看镜像列表
./image.sh
docker images
运行容器
docker run -i -t -d httpd:2.2.31 /bin/bash
查找镜像
docker search --filter=stars=10 java
  • –automated:只列出 automated build 类型的镜像。

  • –no-trunc:显示完整的镜像描述。

  • –filter=stars:列出收藏数不小于指定值的镜像.

从容器创建一个新的镜像
# docker commit -a “xiandian” -m “nginx-test” 5d42a9fafeb6 nginx:v1

docker命令

docker tag 语法
docker tag IMAGE:TAG/]REPOSITORY[:TAG]
docker images
REPOSITORY:表示镜像的仓库源。
TAG:镜像的标签。
IMAGE ID:镜像 ID。
CREATED:镜像创建时间。
SIZE:镜像大小。
docker run
-i:交互式操作。
-t:终端。
-d:后台运行。
httpd:2.2.31:镜像名,使用 https:2.2.31 镜像为基础来启动容器。
/bin/bash:容器交互式 Shell。
获取镜像语法
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
查找镜像
docker search [OPTIONS] TERM
删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE…]
强制删除。
–no-prune:不移除该镜像的过程镜像,默认移除。
启动容器
docker start [CONTAINER ID]
列出所有容器(包含终止状态)
docker ps -a
查看具体容器的信息
docker inspect [container ID or NAMES]
查看容器的使用资源状况
docker stats [container ID or NAMES]
进入容器
docker exec -it [CONTAINER ID] bash
删除终止状态的容器
docker rm [CONTAINER ID]
删除运行中的容器
docker rm -f [CONTAINER ID]
导入/导出容器
docker export [CONTAINER ID] > [tar file]
cat [tar file] | docker import - [name:tag]
将镜像保存为文件
docker save -o [tar file] IMAGE
从容器创建一个新的镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • -a:提交的镜像作者

  • -c:使用 Dockerfile 指令来创建镜像

  • -m:提交时的说明文字

  • -p:在 commit 时,将容器暂停

Dockerfile

FROM:指定基础镜像,必须为第一个命令。
MAINTAINER:维护者信息。
RUN:构建镜像时执行的命令。
ADD:将本地文件添加到容器中,tar 类型文件会自动解压(网络压缩资源不会被解 压),可以访问网络资源,类似 wget。
COPY:功能类似 ADD,但是是不会自动解压文件,也不能访问网络资源。
CMD:构建容器后调用,也就是在容器启动时才进行调用。
ENTRYPOINT:配置容器,使其可执行化。配合 CMD 可省去“application”,只使 用参数。
LABEL:用于为镜像添加元数据。
ENV:设置环境变量。
EXPOSE:指定与外界交互的端口。
VOLUME:用于指定持久化目录。
WORKDIR:工作目录,类似于 cd 命令。

容器云 docker相关推荐

  1. 容器与容器云——Docker容器基本概念

    Docker 基本概念 - 什么是Docker? Docker是一个轻量级的"虚拟机",容器完全使用沙箱机制,相互之间不会有任何接口.是Linux容器里运行应用的开源工具. - D ...

  2. 从云计算到容器到容器云

    最近有朋友问我:"为啥你写的东西我都看不懂,也不是我平时用的."我不禁哑口无言.就像今天要说的云计算,其实已经覆盖了日常生活的不少场景,像检票一类的人脸识别,智慧城市的红绿灯等等, ...

  3. 平安容器云平台 Padis--传统金融企业的 Docker 实践

    https://blog.csdn.net/u010646653/article/details/53099016 基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安 ...

  4. 《Docker——容器与容器云》:第五章 构建自己的容器云

    我们在第1章介绍了一个云计算平台应有的层次结构,其中平台即服务层(PaaS)是本书重点着墨描述的.尽管在一些经典PaaS平台中,容器技术已经扮演了一个至关重要的角色,但很遗憾,大部分经典PaaS平台中 ...

  5. 《Docker——容器与容器云》:第一章 从容器到容器云

    2013年初,一个名字从云计算领域横空出世,并在整个IT行业激起千层浪.这就是Docker--一个孕育着新思想的"容器".Docker选择容器作为核心和基础,依靠容器技术支撑的Do ...

  6. Docker 系列学习文章 | 什么是容器云?

    戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者:宝哥@devops运维 转自:云 ...

  7. 五阿哥钢铁电商平台Docker容器云平台建设实践——你想知道的都在这里!

    前言 五阿哥钢铁电商平台(www.wuage.com)是由钢铁行业第一的中国五矿与互联网第一的阿里巴巴联手打造,并充分运用双方股东优势资源,即:阿里巴巴在大数据.电商运营.互联网产品技术上的巨大优势, ...

  8. 《Docker:容器与容器云》.pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书从实践者的角度,在讲解Docker高级实践技巧的同时,深入到源代码层次,为读者梳理出Docker容器技术和基于Docker的容器云技术(如K ...

  9. 云原生的基石,一文读懂容器、Docker、Pod到底是什么!

    作者 | Aholiab 责编 | Carol 出品 | CSDN(ID:CSDNnews) 封图|CSDN下载自视觉中国 云原生(Cloud Native),是2013年由Pivotal公司率先提出 ...

最新文章

  1. FileUpload生成图片水印,文字水印(转载)
  2. HDU 1846 Brave Game
  3. VS2010下安装boost库
  4. 调试U-Boot笔记(三)
  5. jquery.roundabout.js图片叠加3D旋转
  6. 正则表达式 正整数_史上最全的正则表达式 (1) -- 校验数字的表达式
  7. sql 从ip列表中查询ip段_IP地址段查询深度优化案例
  8. 第6章 循环结构程序设计
  9. jquery删除替换元素remove、detach、empty、replaceWith、replaceAll
  10. R语言构建层次分析模型不看一下吗~
  11. 使用w3m访问页面执行函数
  12. Cypress USB 芯片固件修改,改序列号(Serial Number)
  13. 虚拟机VMware插入U盘操作系统崩溃死机的解决方法
  14. 专门用来保存图片生成图片链接的工具博文
  15. Sloth组件之NetRisc.Configuration
  16. 计算机技术与软件专业技术资格哪个好考,计算机技术与软件专业技术资格好考吗?考试时间?...
  17. 六年软件测试感悟 从博彦到VMware
  18. 介词短语不能做宾语,但有时有的借此有句意省略就出现了介词再加上介词短语了
  19. 旭锋科技制造信息管理系统
  20. OpenCV实战之人脸美颜美型(四)——肤色检测

热门文章

  1. 学习四旋翼(三):DMP姿态解算和串级PID控制姿态
  2. 软件包管理工具snap的安装及常用命令
  3. [iOS]Xcode快捷键和添加注释
  4. windows10怎么配置二个或多个JDK版本_详细图解
  5. Jenkins linter
  6. 网络对抗 Exp9 Web安全基础 20154311 王卓然
  7. 配置D3D8到vs2012项目中遇到的问题和解决过程
  8. NVS4200M显卡“超频”
  9. 如何快速学习一门编程语言
  10. 史上最全Maven教程(三)