docker及安装
- Docker容器引擎基础
- 基于dockerfile构建镜像应用
- docker网络模型详解docker compose
- 企业级仓库harbor高可用方案
- 构建docker容器监控系统
- docker+consul+Registrator实现服务注册与发现
docker容器引擎基础
docker是容器的管理工具
- 客户(老板)-产品-开发-测试-运维-->项目周期不断延后,项目质量越差
- DevOps思想:开发运营,能够让多个部门高效工作密切的合作。
- 开发(Dev)测试(Test)预上线(UAT)生产环境(Pro)
- docker是在linux容器里运行应用的开源容器管理工具 ,可以理解为轻量级的虚拟机,国内15年开始兴起,基于Go语言开发。
- Docker由DotCloud公司后改名为Docker lnc。Google也在器PaaS产品中广泛使用。
- 官网:https://www.docker.com/
- 云计算三种模型:is基础建平台设施即服务(云计算将平台已经部署),ps平台即服务(更适合于开发只需要开发使用),as所有及服务(基本所有都能解决)。
docker
- docker在linux原有的lxc技术的基础上进行二次封装
- docker宗旨:Build,Ship and Run Any App,Anywher.(通过一次构建能形成一次运行环境)
容器对比传统虚拟化
第一个:容器,第二个:虚拟化
- 虚拟化:地层硬件支撑,做虚拟化,虚拟出硬件资源,做操作系统,在系统上跑服务(占用大量服务器硬件资源浪费)
- 容器:中低层硬件上运行操作系统,系统上运行Docker引擎,可以隔离运行容器(提高资源利用率)
- 对比:
Docker使用场景及其优点
-
Docker因体积较小,更适合迁移(简化了重新部署,调试等)。
-
快速的交付和部署:也可以认为迁移,docker快速创建容器,快速迭代应用程序,且透明。
-
更高效的虚拟化
-
更轻松的迁移和扩展
-
简单的管理
docker的概念
-
镜像(image):类似于虚拟机的快照(已经装好的环境,可以直接使用,不能改变,但是可以不断的堆积更新。),可以理解为一个面向docker容器引擎的只读模板。
-
容器(container):是镜像创建的运行实例(可以开启,使用,停止,删除等),可以理解为一个简易的虚拟机。docker容器用来运行和隔离应用地方
-
仓库(repository):是集中存放镜像的地方,仓库有一个仓库注册器(Registry),里面有很多的仓库,而仓库里有很多的镜像。但是镜像名字可以一样,标签(tag)不同。
仓库分为公开仓库(Public)和私有仓库(Private),最大的公开仓库就是Docker Hub(https://hub.docker.com/)。
Docker安装
- Docker支持所有主流的操作系统平台上使用。
- Docker发行版本:Docker-EE 企业版 , Docker-CE 社区版
- CentOs系统下可以使用Docker官网curl安装,或者yum安装
#使用yum源安装(不建议)
#关闭防火墙三件套,确认网络使用
[root@server01 ~]# iptables -F
[root@server01 ~]# setenforce 0
setenforce: SELinux is disabled
[root@server01 ~]# systemctl stop firewalld
[root@server01 ~]# ping www.baidu.com
[root@localhost yum.repos.d]# ls #查看网络源
bak CentOS-Base.repo CentOS-Media.repo
yum clean && yum makecache
yum -y install docker #安装
systemctl start docker #开启
systemctl enable docker #设置开机自启
[root@localhost ~]# docker version #查看docker版本信息
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Mon Jun 7 15:36:09 2021
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-208.git7d71120.el7_9.x86_64
Go version: go1.10.3
Git commit: 7d71120/1.13.1
Built: Mon Jun 7 15:36:09 2021
OS/Arch: linux/amd64
Experimental: false
#安装docker-CE
#首先需要安装aliyun.repo
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载aliyun仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #配置额外仓库
yum clean all && yum makecache
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #准备网络源
yum -y install yum-utils device-mapper-persistent-data lvm2 # 安装docker依赖的软件包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加docker仓库
ls /etc/yum.repos.d/ #查看docker仓库
yum -y instal docker-ce #安装
systemctl start docker-ce #启动docker
systemctl anble docker-ce #设置开机自启
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 20.10.9
API version: 1.41
Go version: go1.16.8
Git commit: c2ea9bc
Built: Mon Oct 4 16:08:14 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.9
API version: 1.41 (minimum version 1.12)
Go version: go1.16.8
Git commit: 79ea9d3
Built: Mon Oct 4 16:06:37 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.11
GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker info #查看详细信息
Registry: https://index.docker.io/v1/ #查看指向的默认的tar包地址
https://cn.aliyun.com/ #阿里云服务器官网
Docker镜像操作
docker search nginx #查找镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 15653 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 2080 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 818 [OK]
jc21/nginx-proxy-manager Docker container for managing Nginx proxy ho… 259
linuxserver/nginx An Nginx container, brought to you by LinuxS… 157
#第一列:NAME:镜像名字
#第二列:DESCRIPTION:镜像描述信息
#第三列:SYARS:星级(下载数,好评越高越nb)
#第四列:OFICIAL:官方(ok)
- 查看镜像
docker images #列出已有镜像
REPOSITORY(镜像名/仓库名+镜像名) TAG(标签) IMAGE ID(镜像的ID号) CREATED(镜像创建时间) SIZE(多大)
docker inspect nginx #查看镜像详细信息
- 下载镜像
docker pull nginx
- 给镜像添加标签
#格式:docker tag 名称(:标签) 新名称(:标签)
docker tag nginx nginx:test
- 删除镜像
#格式:docker rmi 镜像名称[:标签]
docker rmi 镜像ID
docker rmi nginx:test
- 存出镜像和载入镜像
存出格式:docker save -o 存出镜像为本地文件 镜像名
docker save -o nginx-lmages nginx
ls -l nginx-lmages
载入格式:docker load < nginx-lmages.tar
docker load --input nginx-lmages.tar
- 上传镜像
#首先注册登录仓库
docker login
账号,密码
docker tag nginx 192.168.200.100:5000/nginx:test
docker push 192.168.200.100:5000/nginx:test