vtnews 2020-02-23
docker 是一个软件,c/s架构的软件(mysql,redis)
但是,mysql客户端和服务端通信时,基于socket,自己定制的协议,pymysql就是个mysql的客户端(跟navicate,go语言的连接mysql的代码和java连接mysql的代码都是一个东西)
docker 客户端跟服务端通信,是通过http协议,resful规范(新的软件,基本上都是走http协议,resful规范),es
docker 的重点就是镜像和容器,基于镜像来运行容器:镜像是面向对象中的类,容器是面向对象中的对象
注册中心:docker 是一个软件,需要虚拟化出操作系统,操作系统从哪来?从注册中心拉下来的,从注册中心来下来的东西,叫镜像(比如要拉一个centos7的镜像),镜像运行起来,叫容器(才是真正的跑起来的操作系统)
一个centos7镜像,跑起来两个容器,在一个容器上装了mysql,在另一个上装了python3.6
说白了就是,docker就是一个模板,用来实例化出一个个操作系统的。你可以在宿主机上下载一个docker,然后拉取了镜像,把镜像给实例化了一个容器出来,这个容器,就是一个操作系统,是什么操作系统就看你拉取了什么镜像下来,现在就变成了一个操作系统上面还有一个操作系统了。当然你也可以在这个容器里在安装docker,在拉镜像,一堆没有意义的操作,禁止套娃。
windows(win10及以上,下一个docker软件,下一步安装就可以了)/linux(乌班图,centos)/Mac
乌班图上很简单,因为docker就是在乌班图上开发的
在centos上安装,要在7.x以上,在上面装docker
mac本质就是unix操作系统,在终端连接
ssh
sudo yum update sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install docker-ce #docker软件安装完成,服务端和客户端都安装完成, docker -v #查看客户端版本
systemctl start docker # 7.x用这个命令启动 systemctl stop docker #停止docker服务端 # 了解 启动docker: systemctl start docker 停止docker: systemctl stop docker 重启docker: systemctl restart docker 查看docker状态: systemctl status docker 开机启动: systemctl enable docker 查看docker概要信息 docker info 查看docker帮助文档 docker --help
镜像名称,是否是官方镜像,描述,stars数
docker pull centos:centos7
docker pull centos:8
docker pull python:3.6 其实下载下什么东西?镜像,其实是一堆文件,
那centos7和python的区别是什么?如果下载python3.6 :就是一个操作系统上安装了python环境,从官方拉,是乌班图+python
docker pull mysql:5.6 ?下载了一个镜像,镜像里安装了mysql,就相当于操作系统上安装了mysql
docker images
docker rmi id号 id号可以缩写
docker rmi 5e3
镜像运行,是启动容器,一个个的容器,就是一个个的操作系统
一个centos7的镜像,可以跑起多个容器,每一个容器就是一个操作系统
docker ps:查看正在运行的容器
docker ps –a:查看所有容器(包括停止和运行的)
docker run -it --name=mycentos centos:centos7 /bin/bash
exit 退出容器,容器也就停止了
docker run -di --name=mycentos2 centos:centos7 不进入容器 内部
docker exec -it mycentos2 /bin/bash 进入到容器内容
exit退出,容器不停止
docker stop id号或者名字 容器停止
docker start id号或者名字 启动容器