(一)docker和传统虚拟机的区别:

docker是用go语言写的
1.架构上:

docker和supervisor docker和supervisor优劣_docker


普通虚拟机的架构:

docker和supervisor docker和supervisor优劣_docker和supervisor_02


infrastructure 基础设施–》电脑硬件

HOST operating system 主机操作系统 --》linux,windows等

docker 是一个软件,运行在操作系统上

hypervisor 超级的虚拟化管理程序 vmware 超级监督者

2.docker的优势:
1.速度上秒杀操作系统
2.资源消耗上 非常的少 一个容器就站几十MB 二一个VM需要几十GB  ---》资源可靠
3.扩展性强 快速复制
3.docker 缺点:
隔离性没有那么强
docker怎么做到底层隔离的?
name space		--》命名空间 (内核操控的 在内存中划分出不同的命名空间 给不同的容器划分不同的命名空间)
lxc Linux_container --->对容器进行管控的软件
cgroup ---》对硬件资源进行限制   cpu 内存 disk 带宽

docker和supervisor docker和supervisor优劣_docker_03

(二)安装docker及使用命令

安装:

1.开启两台虚拟机—》通过不同的源安装

128 --》docker官方源安装
130 --》centos官方源去安装

2、docker官方源安装

下载docker官方的repo文件
yum install -y yum-utils -y

下载docker官方提供的repo文件到/etc/yum.repos.d目录下,文件名叫docker-ce.repo
 yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
 
  使用docker官方的yum源安装的docker
  yum install docker-ce docker-ce-cli containerd.io

3、centos源安装

yum install docker -y
查看安装成功没有
rpm -qa|grep docker

4.添加一个国内的阿里云的源,下载会快很多。–》推荐使用

yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

docker和supervisor docker和supervisor优劣_docker_04


5.添加国内源

vim /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}
常用命令:
1.启动docker:
service docker start
2.重启docker:
service docker restart
3.查看版本:
docker version
4.查看本机上有多少docker镜像:
docker images
5.拉取镜像:
docker pull mysql:5.7.33
6.查找nginx镜像:
docker search nginx

7.启动容器:
docker run --name sc_nginx1 -p 80:80 -d nginx   
	-d后台运行
8.查看哪些容器运行起来了
docker ps
9.查看所有容器    没有运行起来的程序也会展示
docker ps -a
10.删除容器
docker rm 容器的id
11.进入容器内部
docker  exec -it sc_nginx3 /bin/bash

进入容器后的操作

docker和supervisor docker和supervisor优劣_docker_05

12.查看docker里面的网络类型
 docker network ls
 13.查看桥接的详细信息
 docker network inspect bridge

镜像的导入和导出

14.  导出镜像
 docker save nginx >nginx.tar			||			docker save -o nginx.tar nginx
 15.scp到另一台虚拟机
 scp nginx.tar 192.168.100.130:/root
 16.导入镜像
 docker load -i nginx.tar
 17.导出正在运行的镜像

docker和supervisor docker和supervisor优劣_docker_06

18.列出数据卷
docker volume ls
19.创建数据卷
docker volume create sc-vol
20.详细查看数据卷
docker volume inspect sc-vol
21.数据卷的挂载
docker run -d --name tanglf -p 6654:80 --mount source=sc-vol,target=/usr/share/nginx/html nginx
22.查看创建的数据卷在哪?
/var/lib/docker/volumes/sc-vol/_data
23.删除卷
docker volume rm sc-vol
24.查看网络有哪些类型
docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
c1d26ae1c4f4   bridge    bridge    local
5c365f836b82   host      host      local
085d1da44a12   none      null      local
25.查看容器的具体信息--->容器的IP地址
docker container inspect nginx_1

(三)docker基本概念

容器:

容器是来运行镜像的地方  --》一个容器对应一个服务

镜像:

1.image 相当于微型的操作系统
2.镜像包括:程序代码、基础系统(centos7.iso)、依赖包

仓库:

存放镜像的地方

流量走向:

docker和supervisor docker和supervisor优劣_docker_07


docker和supervisor docker和supervisor优劣_docker和supervisor_08

(四)数据卷volume—> 数据持久化

数据卷
作用:是用来存放数据的地方
目的:让容器里的数据可以永久保存,同时能够和其他的容器分享

docker和supervisor docker和supervisor优劣_数据_09

docker和supervisor docker和supervisor优劣_docker_10

实现数据的一致
把本地web目录挂载到nginx容器的html目录下

docker run -d --name lyq -v /web:/usr/share/nginx/html -p 7790:80 nginx
数据卷的挂载
docker run -d --name tanglf -p 6654:80 --mount source=sc-vol,target=/usr/share/nginx/html nginx

(五)docker的网络类型

注意:

每一种网络类型都相当于一种命名空间

bridge桥接模式:

docker和supervisor docker和supervisor优劣_nginx_11

host模式:
容器和宿主机共享ip地址,端口号要区别开。

container模式:
很多容器共享IP地址。

overlay模式:
解决了不同宿主机之间的问题
23min