容器云技术
Docker引擎的装置
准备两台虚拟机,一台为docker主节点,一台为docker客户端,装置CentOS7.5_1804系统
根底环境配置
网卡配置(master节点)
修正docker主节点主机名
配置网卡
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=099334fe-751c-4dc4-b062-d421640ceb2e
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.7.10
NETMASK=255.255.255.0
GATEWAY=192.168.7.2
DNS1=114.114.114.114
网卡配置(slave节点)
修正docker客户端主机名
配置网卡
iTYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=53bbedb7-248e-4110-bd80-82ca6371f016
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.7.20
NETMASK=255.255.255.0
GATEWAY=192.168.7.2
DNS1=114.114.114.114
配置YUM源(两个节点)
将提供的紧缩包Docker.tar.gz上传至/root目录并解压
配置本地YUM源
[kubernetes]
name=kubernetes
baseurl=file:///root/Docker
gpgcheck=0
enabled=1
晋级系统内核(两个节点)
Docker CE支持64位版本CentOS 7,并且请求内核版本不低于3.10
配置防火墙(两个节点)
配置防火墙及SELinux
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
开启路由转发(两个节点)
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
Docker引擎装置
装置依赖包(两个节点)
yum-utils提供了yum-config-manager的依赖包,device-mapper-persistent-data和lvm2are需求devicemapper存储驱动
装置docker-ce(两个节点)
Docker CE是免费的Docker产品的新称号,Docker CE包含了完好的Docker平台,十分合适开发人员和运维团队构建容器APP
装置指定版本的Docker CE
启动Docker(两个节点)
启动Docker并设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
查看docker的系统信息
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.6
Storage Driver: overlay2
Docker仓库的运用
构建私有仓库
官方的Docker Hub是一个用于管理公共镜像的仓库,用户能够在上面找到需求的镜像,也能够把私有镜像推送上去。官方在Docker Hub上提供了Registry的镜像,能够直接运用该Registry镜像来构建一个容器,搭建私有仓库效劳
运转Registry(master节点)
将Registry镜像运转并生成一个容器
dff76b9fb042ff1ea15741a50dc81e84d7afad4cc057c79bc16e370d2ce13c2a
Registry效劳默许会将上传的镜像保管在容器的/var/lib/registry中,将主机的/opt/registry目录挂载到该目录,可完成将镜像保管到主机的/opt/registry目录
查看运转状况(master节点)
查看容器运转状况
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dff76b9fb042 registry:latest “/entrypoint.sh /etc…” About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp registry
查看状态
Registry容器启动后,翻开阅读器输入地址http://192.168.7.10:5000/v2/
上传镜像(master节点)
配置私有仓库
{
“insecure-registries”:[“192.168.7.10:5000”]
}
标志镜像
运用上传标志的镜像
The push refers to repository [192.168.7.10:5000/centos]
9e607bb861a7: Pushed
latest: digest: sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf size: 529
查看仓库中的镜像
{“repositories”:[“centos”]}
拉取镜像(slave节点)
配置私有仓库地址
{
“insecure-registries”:[“192.168.7.10:5000”]
}
拉取镜像并查看结果
latest: Pulling from centos
729ec3a6ada3: Pull complete
Digest: sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf
Status: Downloaded newer image for 192.168.7.10:5000/centos:latest
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.7.10:5000/centos latest 0f3e07c0138f 7 months ago 220MB
Docker镜像和容器的运用
在docker主节点master主机上操作
镜像的根本管理和运用
镜像有多种生成办法:
(1)能够从无到有开端创立镜像
(2)能够下载并运用他人创立好的现成的镜像
(3)能够在现有镜像上创立新的镜像
能够将镜像的内容和创立步骤描绘在一个文本文件中,这个文件被称作Dockerfile,经过执行docker build 命令能够构建出Docker镜像
查看镜像列表
列出本地主机上的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
httpd latest d3017f59d5e2 7 months ago 165MB
busybox latest 020584afccce 7 months ago 1.22MB
nginx latest 540a289bab6c 7 months ago 126MB
redis alpine 6f63d037b592 7 months ago 29.3MB
python 3.7-alpine b11d2a09763f 7 months ago 98.8MB
4cda95efb0e4 7 months ago 80.6MB
192.168.7.10:5000/centos latest 0f3e07c0138f 7 months ago 220MB
centos latest 0f3e07c0138f 7 months ago 220MB
registry latest f32a97de94e1 14 months ago 25.8MB
swarm latest ff454b4a0e84 24 months ago 12.7MB
httpd 2.2.32 c51e86ea30d1 2 years ago 171MB
httpd 2.2.31 c8a7fb36e3ab 3 years ago 170MB
REPOSITORY:表示镜像的仓库源
TAG:镜像的标签
IMAGE ID:镜像ID
CREATED:镜像创立时间
SIZE:镜像大小
运转容器
同一仓库源能够有多个TAG,代表这个仓库源的不同个版本
be31c7adf30f88fc5d6c649311a5640601714483e8b9ba6f8db853c73fc11638
-i:交互式操作
-t:终端
-d:后台运转
httpd:2.2.31:镜像名,运用https:2.2.31镜像为根底来启动容器
/bin/bash:容器交互式Shell
假如不指定镜像的版本标签,则默许运用latest标签的镜像
获取镜像
当本地主机上运用一个不存在的镜像时,Docker会自动下载这个镜像。假如需求预先下载这个镜像,能够运用docker pull命令来下载
格式
OPTIONS阐明:
-a:拉取一切tagged镜像。
–disable-content-trust:疏忽镜像的校验,默许开启
查找镜像
查找镜像普通有两种方式,能够经过Docker Hub(https://hub.docker.com/)网站来搜索镜像,也能够运用docker search命令来搜索镜像
格式
OPTIONS阐明:
–automated:只列出automated build类型的镜像
–no-trunc:显现完好的镜像描绘
–filter=stars:列出珍藏数不小于指定值的镜像
搜索httpd寻觅合适的镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
node Node.js is a JavaScript-based platform for s… 8863 [OK]
tomcat Apache Tomcat is an open source implementati… 2739 [OK]
openjdk OpenJDK is an open-source implementation of … 2265 [OK]
java Java is a concurrent, class-based, and objec… 1976 [OK]
ghost Ghost is a free and open source blogging pla… 1188 [OK]
couchdb CouchDB is a database that uses JSON for doc… 347 [OK]
jetty Jetty provides a Web server and javax.servle… 336 [OK]
groovy Apache Groovy is a multi-faceted language fo… 92 [OK]
lwieske/java-8 Oracle Java 8 Container - Full + Slim - Base… 46 [OK]
nimmis/java-centos This is docker images of CentOS 7 with diffe… 42 [OK]
fabric8/java-jboss-openjdk8-jdk Fabric8 Java Base Image (JBoss, OpenJDK 8) 28 [OK]
cloudbees/java-build-tools Docker image with commonly used tools to bui… 15 [OK]
frekele/java docker run --rm --name java frekele/java 12 [OK]
NAME:镜像仓库源的称号
DESCRIPTION:镜像的描绘
OFFICIAL:能否是Docker官方发布
stars:相似GitHub里面的star,表示点赞、喜欢的意义
AUTOMATED:自动构建
删除镜像
格式
OPTIONS阐明:
-f:强迫删除
–no-prune:不移除该镜像的过程镜像,默许移除
强迫删除本地镜像busybox
Untagged: busybox:latest
Deleted: sha256:020584afccce44678ec82676db80f68d50ea5c766b6e9d9601f7b5fc86dfb96d
Deleted: sha256:1da8e4c8d30765bea127dc2f11a17bc723b59480f4ab5292edb00eb8eb1d96b1
容器的根本管理和运用
容器是一种轻量级的、可移植的、自包含的软件打包技术,使应用程序简直能够在任何中央以相同的方式运转。容器由应用程序自身和依赖两局部组成
运转容器
运转第一个容器
d7ab2c1aa4511f5ffc76a9bba3ab736fb9817793c6bec5af53e1cfddfb0904cd
-i:交互式操作
-t:终端
-rm:容器退出后随之将其删除,能够防止糜费空间
-p:端口映射
-d:容器在后台运转
过程
简单描绘
(1)下载Nginx镜像
(2)启动容器,并将容器的80端口映射到宿主机的80端口
运用docker run来创立容器
(1)检查本地能否存在指定的镜像,不存在就从公有仓库下载
(2)应用镜像创立并启动一个容器
(3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
(4)从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
(5)从地址池配置一个IP地址给容器
(6)执行用户指定的应用程序