docker 简介
docker
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,在拉镜像,一堆没有意义的操作,禁止套娃。
docker 安装
windows(win10及以上,下一个docker软件,下一步安装就可以了)/linux(乌班图,centos)/Mac
乌班图上很简单,因为docker就是在乌班图上开发的
在centos上安装,要在7.x以上,在上面装docker
mac本质就是unix操作系统,在终端连接
ssh root@101.133.225.166
安装步骤
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 #查看客户端版本
2.3 启动docker
docker 安装完,服务端没有启动,需要启动
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
2.4 镜像操作
查找镜像:docker search centos,会去https://hub.docker.com/查找
直接去该地址查找即可
镜像名称,是否是官方镜像,描述,stars数
拉去centos7的版本镜像
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
2.5 容器操作
镜像运行,是启动容器,一个个的容器,就是一个个的操作系统
一个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号或者名字 启动容器