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

配置镜像加速详解

参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

复制配置镜像加速器代码并在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、

 

posted @ 2024-03-28 22:27  一介桃白白  阅读(11)  评论(0编辑  收藏  举报