【微服务学习笔记】七、Docker学习及虚拟机安装使用

Docker

一、初识Docker

1、什么是Docker

Docker如何解决依赖的兼容问题的?

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰

image-20220727140300758

Docker是如何解决不同系统环境的问题?

image-20220727140518091

image-20220727140642905

总结:Docker是什么?

2、Docker与虚拟机的差别

image-20220727141331856

image-20220727141508253

Docker与虚拟及的差别:

  • dockrer是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好;虚拟机体积大 、启动速度慢、性能一般

3、Docker架构

image-20220727142158578

image-20220727142301877

image-20220727142537190

4、Docker安装

5、镜像命令

  • docker pull nginx 从镜像拉取镜像,如Docker Hub Container Image Library | App Containerization,可以接版本号,不接版本号默认最新版
  • docker images 查看所有镜像
  • docker save -o nginx.tar nginx:latest 导出镜像为一个文件,保存到磁盘
  • docker rmi nginx:latest 删除镜像 ,rmi 后面可以接名称或者ID
  • docker load -i nginx.tar 加载镜像 (-i表示input,-o表示output)
  • docker load --help 查看帮助文档
  • docker push 推送

练习:

image-20220728143517024

6、容器命令

image-20220728144547124

案例1:

例如:

docker run --name zh -p 80:80 -d nginx

容器创建成功后,会返回一个ID

如:

66969f8d6a1341f143cf874ba13faf89ec812ab6820812133ba64281a99c61ba

查看容器命令:默认查看运行中的容器,加上-a查看所有容器

docker ps

查看日志命令:zh表示容器名称

docker logs zh 

持续日志查看:

docker logs -f zh

停止:用ctrl + C

小结:

image-20220728151738099
案例2:

进入Nginx容器,修改HTML文件内容,添加“Zhenghui”

image-20220728153440388

步骤一:

 docker exec -it zh bash

查看官方文档,找到初始的文档位置,

image-20220728154151742

**步骤二:**进入nginx的Html所在目录/user/share/nginx/html

 cd /usr/share/nginx/html

**步骤三:**修改index.html

 sed -i 's#Welcome to nginx#Zhenghui#g' index.html

在容器创建成功后:

可以通过

  • docker start zh 开启容器
  • docker stop zh 停止容器
  • docker rm zh 删除容器

小结:

image-20220728160333084

练习:

image-20220728160441649

image-20220728160502670

进入dockerHub查看res镜像文档

image-20220728160810720

创建redis容器支持数据持久化的命令

docker run --name zh -p 6379:6379 -d redis redis-server --appendonly yes

7、数据卷

容器与数据耦合的问题

image-20220729160500050

**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统的某个目录。

image-20220729161801242

image-20220729161919128

docker volume create ls   //创建数据卷
docker volume ls     //查看数据卷
docker volume inspect html  //查看目录
docker volume prune    //删除未使用的数据卷
docker volume rm html  //删除指定文件

数据卷的作用:

将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全。

案例一:挂载数据卷

image-20220729172339308

image-20220729172436921

删除文件时。使用

rm -rf fileName (文件名)

移动文件:

 mv -i /home/zhenghui/mysql.tar /tmp/mysql.tar  移动文件

参考:(18条消息) linux环境下将某个目录下的文件复制或者移动到另一个目录下_bst@微胖子的博客-CSDN博客_linux 复制文件到另一个目录命令

案例二:目录直接挂载

image-20220801150218597

加载 mysql.tar 直接去dockerhub搜索mysql,执行命令

docker pull mysql

为获取配置文件,可以先创建一个测试容器mysqltest,查看其文件路径

docker run --name mysqltest \
> -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root \
> -d mysql

查看文件目录:

 docker inspect mysqltest

拷贝配置文件至自定义目录:

 docker cp mysqltest:/etc/mysql/my.cnf /tmp/mysql/cnf

移动文件并重命名:

 mv -i /tmp/mysql/cnf /tmp/mysql/conf/my.cnf

删除测试容器

 docker rm -f a37ea3141bcb(容器ID)

创建并挂载所需要的容器:(-e表示环境密码,-p表示端口,-v表示数据卷挂载,-d表示后台运行)

docker run \
> --name mysql \
> -e MYSQL_ROOT_PASSWORD=123 \    
> -p 3306:3306 \
> -v /tmp/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
> -v /tmp/mysql/data:/var/lib/mysql \
> -d \
> mysql:latest
总结:

image-20220801145957977

8、自定义镜像

1、镜像结构

镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。

image-20220801152243444

2、Dockerfile

image-20220801152456193构建镜像:参考:16-自定义镜像-Dockerfile_哔哩哔哩_bilibili

image-20220801153620582

image-20220801153727627

3、docker-compose

image-20220801154620506

下载安装命令:

 sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

修改文件权限:+x表示给文件添加可执行的权限

 sudo chmod +x /usr/local/bin/docker-compose

Docker-compose的作用:

帮助我们快速不俗分布式应用,无需一个个微服务去构建镜像和部署。

4、docker-compose部署微服务集群

参考视频链接:18-DockerCompose-部署微服务集群_哔哩哔哩_bilibili

参考文档链接:(18条消息) DockerCompose的介绍以及使用docker-compose部署微服务_憨憨撸码的博客-CSDN博客_dockercompose部署微服务

参考视频链接:18-DockerCompose-部署微服务集群_哔哩哔哩_bilibili

参考文档链接:(18条消息) DockerCompose的介绍以及使用docker-compose部署微服务_憨憨撸码的博客-CSDN博客_dockercompose部署微服务

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cc阿正

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值