docker 概念 -云计算的基石
docker的一个软件:
开源
docker基本组成
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
maven)
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
docker 原理介绍;
Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运作
只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
docker 是内核级别的虚拟机容器技术;
解决什么问题?干什么?
容器的优缺点;
https://www.docker.com
docker官方文档地址:
https://docs.docker.com/
分布式
云部署
容器
镜像
仓库
docker 容器。
- Docker是一种先进的隔离方式,类似于虚拟机,但是相比虚拟机启动和停止速度更快(小于1s),和宿主系统共用内核,不需要系统组件,占用内存空间更少,更加灵活。
- Docker的思想来自于集装箱,云计算就好比大货轮。docker就是集装箱,只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。 @刘允鹏
- Docker的技术原理:使用Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UionFS等技术,对进程进行封装隔离。由于隔离的进程独立于宿主和其他进程,因此也称其为容器。 容器间彼此隔离,还独立于底层的基础设施。应用出问题时,只会影响单个容器。
docker 实例
服务安装:
镜像
docker安装:
centos配置
1)查看centos系统版本命令:
2) 配置阿里云yum源
1.下载安装wget
yum install -y wget
2.备份默认的yum
mv /etc/yum.repos.d /etc/yum.repos.d.backup
3.设置新的yum目录
mkdir -p /etc/yum.repos.d
4.下载阿里yum配置到该目录中,选择对应版本
wget -O
/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5.更新epel源为阿里云epel源
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
6.重建缓存
yum clean all
yum make cache
7.看一下yum仓库有多少包
yum repolist
8.升级系统内核
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grep initrd16 /boot/grub2/grub.cfg
grub2-set-default 0
reboot
查看centos系统内核命令:
uname -r
uname -a
=================================
安装docker
1、阿里云开发者平台
开发者平台官网地址: 可以参考阿里云官网提供的docker安装教程进行安装
https://www.aliyun . com/
2、安装步骤:
1)安装docker前置条件
yum install -y yum-utils device-mapper-persistent-data lvm2
2)添加源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/Tinux/centos/docker-ce .repo
#刷新缓存
yum makecache fast
3)查看docker版本
yum list docker-ce --showduplicates sort -r
4)安装docker
安装最新版:推荐大家安装最新版本
#####客户端和服务端一起安装;
yum -y insta11 docker-ce
安装指定版本:
语法规则:
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING>containerd.io
yum -y install docker-ce-18.06.3.ce-3.e17 docker-ce-cli.x86_64
yum insta11 -y docker-ce-19.03.9-3.e17 docker-ce-cli-19.03.9-3.e17
3、docker配置
1、启动
2、加速器地址
4、docker命令
docker v
docker version
docker info
Rancher
使用Rancher可以非常轻松地管理安装在本地或远程开发环境中的Kubernetes
K8S (kubernetes) 为企业提供了一种一致的方式来管理任何计算基础架构
目前最流行的容器编排框架,这里的容器主要是指docker
k8s集群:
管理服务器
业务服务器:
docker 命令 系统学习
docker命令分类
本章节记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,根据docker官网案例,总的来说分为以下几种:
Docker环境信息 - docker [infolversion]
容器生命周期管理 一 docker
[createexec|runstart|stoplrestart|killlrmlpauselunpause]
容器操作管理- docker [ps inspectltoplattachlwaitlexportlport|renamelstat]
容rootfs命令- docker [commitlcpldiff]
镜像仓库一docker [loginlpulllpushlsearch]
本地镜像管理- docker [buildlimages|rmiltaglsavelimportlload]
容器资源管理 - docker [volumelnetwork]
系统日志信息 - docker [events l history | logs]
镜像相关命令
docker images
docker pull
docker push
docker 镜像
1、中央仓库查找需要的镜像;
1) 地址
https://hub.docker .com/
Docker镜像 (image)
Docker Hub地址 docker hub类似maven远程仓库地址 https://hub.docker .com/
作为一名研发人员,则可以将镜像理解为类 (Class) 。是一个应用程序。
首先需要先从镜像仓库服务中拉取镜像。常见的镜像仓库服务是 Docker Hub,但是也存在其他镜像仓库服务。拉取操作会将镜像下载到本地 Docker 主机,可以使用该镜像启动一个或者多个容器;
2)版本确认
2、镜像大小
影响因素:LinuxOS内核、
alpine:??最小的内核 ;
采用那个基础镜像-做镜像;这个是个有争议的问题;
3、命令
docker images
docker pull
docker push
docker tag
docker save
docker load -i
docker inspect
docker rmi
docker image prune
docker 容器
1、容器介绍 :
2、相关命令:
docker run 命令
docker stop --
docker ps
docker rm
停止所有运行容器
docker stop $(docker ps -qa)
删除所有的容器
docker rm $(docker ps -aq)
docker rm $(docker stop $(docker ps -g))
删除所有的镜像
docker rmi $(docker images -g)
dokcer exec
dokcer logs
案例演示:
案例一:启动一个Nginx 容器
docker run -itd --name nginx6 -p 8080:80 nginx:1.22.1
防火墙的错
docker: Error response from daemon: driver failed programming external connectivity on endpoint nginx5 (dfb333352b438113d45787190c1cc6966b2b
de743fe7b60a947444bfc392b9b4):
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.1
7.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.