(一)docker和传统虚拟机的区别:
docker是用go语言写的
1.架构上:
普通虚拟机的架构:
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及使用命令
安装:
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
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
进入容器后的操作
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.导出正在运行的镜像
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)、依赖包
仓库:
存放镜像的地方
流量走向:
(四)数据卷volume—> 数据持久化
数据卷
作用:是用来存放数据的地方
目的:让容器里的数据可以永久保存,同时能够和其他的容器分享
实现数据的一致
把本地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桥接模式:
host模式:
容器和宿主机共享ip地址,端口号要区别开。
container模式:
很多容器共享IP地址。
overlay模式:
解决了不同宿主机之间的问题
23min