SpringCloud(四)Docker
Docker和虚拟机的差异
docker是一个系统进程,体积小、启动速度快、性能好。
虚拟机是在操作系统中的操作系统,体积大、启动速度慢、性能一般。
镜像和容器
镜像:Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器:镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。
一个镜像可以启动成多个容器,从而形成集群。
Docker架构
服务端(Server):负责处理Docker指令,管理镜像、容器等。如:构建镜像、摘取镜像、运行容器。
客户端(Client):通过命令(本地调用)或RestAPI(远程调用)向服务端发送指令。
Docker Registry(镜像服务器)里有官方提供的镜像包(如:MySql、Redis、Nginx等等)
Docker安装
CentOS安装Docker:
链接:https://pan.baidu.com/s/1ykmcSM0cYQnJkfUXsyKX_w
提取码:6zjt
配置镜像加速详解
复制配置镜像加速器代码并在xshell中执行
至此doker安装全部完成。
Docker操作镜像
DockerHub网址:http://hub.docker.com/
记不住Docker命令,可以使用 --help 来查看命令。(例如: docker --help 、docker images --help)
拉取 -- docker pull 镜像名称:版本 版本不填默认拉取最新版本
拉取失败错误:
解决方法:
配置DNS地址
用 xftp 打开 /etc/resolv.conf 更改dns地址
nameserver 8.8.8.8
nameserver 8.8.4.4
保存,在xshell中重启docker --- sudo systemctl restart docker
重新拉取nginx -- docker pull nginx
拉取成功!!!
查看 -- docker images
导出镜像保存成tar文件 -- docker save
删除 -- docker rmi 镜像名称:版本
导入 -- docker load
重启docker --- sudo systemctl restart docker
2、docker images
3、docker pull redis
4、docker save -o redis.tar redis:latest
5、docker rmi redis:latest
6、docker load -i redis.tar
Docker操作容器
80:80 --- 宿主机端口:容器端口 形成一个端口映射。 宿主机端口可任意变更,例如变更为8080。 容器端口不可变动。
常用容器指令
容器创建 -- docker run --name 容器名称 -p 宿主机端口:容器端口 -d 镜像名称
容器查看 -- docker ps(默认只展示运行中的容器) docker ps -a(查看所有的容器,包括停掉的容器)
容器日志查看 -- docker logs 容器名称(查看容器日志) docker logs -f 容器名称 (持续跟踪日志,有新日志就输出 ) 其它指令可通过 docker logs --help 查看使用
停掉容器 -- docker stop 容器名称
运行容器 -- docker start 容器名称
删除容器 -- docker rm 容器名称(默认只能删除没有在运行的容器) docker rm -f 容器名称(强制删除容器包括正在运行的容器)
docker run -name myredis -p 6379:6379 -d redis redis-server --appendonly yes
这种利用docker进入容器的增删改操作不建议使用,因为这种操作不产生日志。
Docker基本操作
数据卷 volume
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。 数据映射。
数据卷操作常用命令
创建数据卷 -- docker volume create 数据卷名称
查看所有数据卷 -- docker volume ls
查看数据卷详细信息 -- docker volume inspect
删除所有未使用的数据卷 -- docker volume prune
删除一个或多个指定的数据卷 -- docker volume rm 数据卷名称
将数据卷挂载到容器上
1、docker run -name nginx -p 80:80 -v html:/usr/share/nginx/html -d nginx
备注: -v html:/usr/share/nginx/html (-v 挂载到数据卷 html 数据卷名称(数据卷不存在会自动创建) /usr/share/nginx/html 是nginx镜像在容器内的目录,可在Docker Registry(镜像服务器)官方网站nginx详情里查看目录)
2、查看数据卷详情 -- docker volume inspect html
3、进入数据卷目录 -- cd 数据卷目录
4、查看目录列表 -- ls 使用 vi 命令修改 或 使用客户端工具打开此目录找到文件进行修改
1、准备好mysql.tar,将tar包导入至docker镜像 -- docker load -i mysql.tar
2、查看是否导入成功 -- docker images
3、创建目录 /tmp/mysql/data /tmp/mysql/conf 将mysql的默认配置文件hmy.cnf上传到 /tmp/mysql/conf 目录
4、