docker介绍
# 什么是虚拟化
# 版本:开源了,大家用,17年以后,两种版本
docker-ce :免费版(公司用也是用ce)
docker-ee:收费版
# Docker 的基础是 Linux 容器(LXC)等技术:进程,文件隔离,在lxc基础上用go语言做了封装,更好用,更简单
# 容器与虚拟机比较:看图说话
# Docker 组件:
-客户端-服务器(C/S)架构程序(mysql,redis),Navicat/pymysql:统统称为mysql客户端,底层基于socket,自己定制的协议
-基于http协议,符合resful规范
# Docker镜像与容器
镜像:面向对象中的类,一堆文件:像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更新
centos的镜像:只有几十个兆,就是一堆文件
容器:面向对象中的对象,镜像运行起来就是容器,当成操作系统,装软件,一个执行环境(当成操作系统)
假设有一个centos的镜像---》跑成3个容器(当成操作系统)---》第一个容器装python;第二个容器装redis,第三个容器装mysql
# 注册中心:
-Registry(注册中心)---》咱么获取镜像的地方(搭建私服,公司自己用的镜像,网上没有,放在自己服务器上)
# docker 保证了环境的统一
-原来在新机器上部署django项目:python环境(版本),django环境(版本)
-python环境(版本),django环境(版本)环境已经在镜像内了,跑在不同的linux服务器上,我的环境是统一的
-开发测试环境跟上线环境完全一致
安装
# centos上安装:centos需要在7.0以上
# windows/mac上自行解决(一般不用)
# centos7 安装docker
1 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2 设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3 安装
sudo yum install docker-ce -y
4 docker 版本:装的最新版
docker -v
Docker version 19.03.8, build afacb8b
docker -v查看版本,如果是17年之前的,就是老版本,操作习惯不一样
5 启动docker服务端:
systemctl start docker 启动
systemctl stop docker 停止
systemctl restart docker 重启
镜像相关
# 镜像当成是一个没有启动的操作系统
# redis镜像,mysql镜像,nginx镜像,django镜像,python镜像:linux+xx软件----》镜像跑起来--》容器:操作系统上运行着redis服务
# 查找镜像:https://hub.docker.com/ 官方网站
docker search helloworld # 等同于在官方网站搜索
docker search centos # 尽量下载是offical官方的,防止不明添加文件,后门
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5956 [OK] 是否是自动构建
# 获取镜像: 在官网Tags标签里可以看到对应的下载版本
docker pull centos # 拉取最新的:相当于docker pull centos:latest
docker pull centos:centos7 # 拉取一个centos7
docker pull centos:centos6.7
docker pull centos:centos10 # 这个 没有,就报错
# 查看本地镜像
docker images # TAG版本 # 创建时间(传到Registry的时间)
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 470671670cac 3 months ago 237MB
centos centos7 5e35e350aded 5 months ago 203MB
# 删除本地镜像
docker rmi 470671670cac # 通过id号删除,可以少写,只要不重
docker rmi centos:centos7 # 通过名字删除
# docker rmi `docker images -q` # 反引号表示 内部执行的结果
相当于
docker rim 470671670cac 5e35e350aded