[初识Docker ] 你需要知道的Docker 配置nginx redis

目录

前言

最喜欢的群,有一群经常交流的群友,这里的韭菜谁也隔不了

一、Docker是什么?它是如何解决兼容问题?

二、DockerHub镜像托管平台

1.Docker架构

2.安装Docker

docker save 和docker load的使用:

上面的docker load -q 就是不打印日志的意思

上述的宿主端口 就是你的服务器端口, 容器端口 就是存放在docker 里面的 服务的端口

 操作修改Nginx容器内部HTML文件:

创建一个Redis容器:

容器和数据耦合的问题:

如何解决数据耦合问题呢 ?

 那么如何操作数据卷呢?

创建数据卷:

 数据卷展示

查看数据卷的路径

删除一个数据卷:

 如何挂载 数据卷到容器内部

将宿主机目录直接挂载到容器上:

DockerFile自定义镜像

镜像结构

Dockerfile语法

基于Ubuntu 镜像构建一个新镜像,运行一个jar 项目.

dockerfilie文件配置

  docker images 查看镜像​

 运行创建的镜像:

 由于dockerfile的配置文件里面,配置多,如果遇见微服务情况,又如何解决呢?

第一步: 覆盖之前繁琐的 dockerfile文件, 使用上面这个配置文件

先睡个觉

DockerCompose

初识DockerCompose

dockerConpose 文件命令对比 之前繁琐的 容器镜像挂载配置命令

centos7安装dockerCompose:

配置compose文件自动补全命令:

dockercompose作用:

部署微服务集群

上图是dockerfile文件展示内容

 dockercompose文件内容配置 

下图是所有配置都完成以后, 只要构建compose命令 它的镜像就会构建,容器就会部署

Docker镜像仓库

常见镜像仓库服务:

 向私有仓库推送本地镜像

 向私有仓库推送 镜像总结​

总结











前言

很惭愧,希望读者看了 不要喷我,我就是喜欢瞎记录东西,看着粉丝突然有了几十个了 ,我感觉很沉重, 有点自愧不如, 感觉自己写得很烂, 我慢慢进步去修改, 我就是单纯记录东西,好上班划水


万般皆下品惟有读书高,好记性不如烂笔头




最喜欢的群,有一群经常交流的群友,这里的韭菜谁也隔不了



一、Docker是什么?它是如何解决兼容问题?

Docker是什么?

  • Docker是一个快速交付应用,运行应用的技术
  • 可以将程序及其依赖,运行环境一起打包个镜像,可以迁移到任意的Linux操作系统.
  • 运行启动移除等命令  方便快捷, 沙箱机制隔离应用,应用互不干扰

如何解决大型项目依赖关系复杂问题?不同组件依赖的兼容问题?

  • Docker将应用Libs(函数库),Deps(依赖),配置与应用打包
  • Docker允许开发中将应用,依赖,函数库,配置 一起打包,形成可移植镜像.
  • Docker应用允许在容器中,使用沙箱机制,相互隔离 (将每个应用放到一个隔离容器去运行,避免相互干扰)

Docker如何解决开发,测试,生产环境的差异呢?

  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统运行.

任意运行的原因:  操作系统组成是 硬件+内核+系统应用

例如ubuntu 和 Centos 二个操作系统  就是同一种Linux内核,只是里面的函数 不同, 都有少数自己独有的 函数,  Docker  把这个函数都打包在一起, 这样 不管是什么 程序调用 都可以使用 

被打包的 函数库

 docker 与 虚拟机 差异:

 镜像和容器:

镜像:Docker将应用程序及其所需的依赖,函数库,环境位置文件打包在一起 称之为镜像

容器:镜像中 应用程序运行后形成的进程就是容器,只是docker会给容器做隔离,对外不可见






二、DockerHub镜像托管平台






1.Docker架构

 

 总结上述Docker的理论知识:






2.安装Docker

 

 如果之前电脑安装过docker,就先卸载:

 第一步:

首先要连网,安装yum工具:

yum安装成功提示:

然后更新本地镜像源:

 然后输入命令:

 yum install -y docker-ce

 安装成功以后, 在启动之前 一定要先配置 防火墙规则, 这里是直接关闭防火墙

在工作的时候 肯定不能直接关闭这个 ,一般都是 开放对应的端口 


 docker -v 就是查看版本 如果查看版本 和  查看docker的状态 都没问题 ,那么就是安装成功了!

配置镜像加速:

镜像相关命令:

docker save 和docker load的使用:

docker -- help 可以直接查看帮助文档,

查看指定命令文档, docker  指定命令 --help

导出nginx详解命令: docker save

 docker rmi 删除指定镜像





上面的docker load -q 就是不打印日志的意思

总结相关指令:

docker images  查看docker镜像

docker rmi 删除指定镜像

docker pull 拉取镜像

docker save  导出后缀为tar的镜像包

docker load 导入镜像,

查看指定命令使用文档, docker  指定命令 --help  例如:docker load --help

=============================下图是  上述指令的流程=======================================

 容器运行  暂停  停止 命令使用:

创建一个Nginx 容器:

 

上述的宿主端口 就是你的服务器端口, 容器端口 就是存放在docker 里面的 服务的端口

查看对应容器的日志

docker logs  容器名称(创建容器的时候 命名的名称),

docker -f  容器名称  这个就是实时展示日志信息

 操作修改Nginx容器内部HTML文件:

 

创建一个Redis容器:

 

 docker exec -it mr bash   进入redis 容器内:

redis-cli  启动客户端

exit 是退出命令

docker exec -it mr redis-cli 可以 一起执行 

容器和数据耦合的问题:

如何解决数据耦合问题呢 ?

 那么如何操作数据卷呢?

 

创建数据卷:

docker volume create 数据卷名称,

 数据卷展示

docker volume ls 

查看数据卷的路径

docker volume inspect

删除一个数据卷:

docker volume prune  删除数据卷 (删除未使用的数据卷  ,有提示  是否确认  y/n)

docker volume rm 数据名称, 直接删除

=======================================================================

 如何挂载 数据卷到容器内部

 把指定的容器内部路径下的文件 挂载到  ,数据卷的路径下,

这时候 我们修改 数据卷的文件内容,指定的 容器内部文件内容也会跟着改变

我们把数据卷和容器都删除以后,

重新执行 docker -run --name mn -p 80:80 -v html /usr/share/nginx/html -d nginx

docker 也会智能的  把数据卷也创建上

 

======================================================================

将宿主机目录直接挂载到容器上:

下面是mysql 的运行命令  和配置 挂载的  二个文件,

这里的 \ 是应用于 指令比较长的时候,  告诉linux 我后面还有执行的命令  比较方便清晰

https://www.bilibili.com/video/BV1LQ4y127n4?p=55&spm_id_from=pageDriver  这个是视频学习的地址 

DockerFile自定义镜像

  • 镜像结构

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

  • Dockerfile语法

基于Ubuntu 镜像构建一个新镜像,运行一个jar 项目.

docker build -t javaweb:1.0  .  这个javaweb是名称   后面是 1.0 版本,

注意这个运行命令 后面有一个点  空格 +点

dockerfilie文件配置

这个是dockerfile 是基于ubuntu 来实现的,下面是ubuntu的配置文件内容

这里面配置了 项目运行的jdk 和java项目的包

  docker images 查看镜像

 运行创建的镜像:

docker run --name web -p  8090:8090 -d javaweb:1.0

 由于dockerfile的配置文件里面,配置多,如果遇见微服务情况,又如何解决呢?

java:8-alpine 这个镜像 是别人做好了的  相当于我们直接使用,

上面说的 基于Ubuntu构建, 就需要去Ubuntu里面配置相关jdk 路径  环境等等....

 docker build -t javaweb:2.0 .     注意有个点  空格+点 (然后构建好了 就去运行dockerfile这个文件     javaweb是名称, 2.0 是版本  )

 首先上面的繁琐dockerfile 文件,能被共享的配置都被 抽离到 java:8-alpine 这个镜像里面去了

第一步: 覆盖之前繁琐的 dockerfile文件, 使用上面这个配置文件

在这里一定要记住,防火墙规则, 跟端口涉及的东西 都要注意防火墙 是否关闭,或者 端口是否放行

 docker build -t javaweb:2.0 .     注意有个点  空格+点

先睡个觉

DockerCompose

  • 初识DockerCompose

dockerConpose 文件命令对比 之前繁琐的 容器镜像挂载配置命令

 

build . 构建当前目录镜像 

因为mysql 是内部访问 所以就没有暴露端口

centos7安装dockerCompose:

二种方式, 自己上传  已经好的compose文件  或者github上面去下载 但是git 比较慢 

 

配置compose文件自动补全命令:

这里的域名访问不到  需要配置权限,放行这个域名 在hosts文件

dockercompose作用:

  • 部署微服务集群

 =================================================

上图是dockerfile文件展示内容

看配置文件提示,我们需要把jar包命名 app.jar,存放在当前dockerfile 平级目录下面

java:8-alpine  这个是拉取别人定义好的 镜像, 例如jdk路径什么的 都不用配置了

./app.jar 是把当前目录下的jar  copy到镜像内部

打包名称方法:

一种是 jar包下载完成  邮件重命名  

另一种是 通过依赖

mysql的数据表也要配置在 对应mysql 服务里面,这样到时候让mysql容器挂载到mysql下的 conf 和data文件,就能访问了

 dockercompose文件内容配置 

 配置对应的服务名称  

dockerCompose 对应项目服务名称

mysql 文件内容路径对应 , 把下载配置好的文件上传宿主机 ;linux上面,然后让mysql容器能够挂载到这个文件上面

下面的volume 是数据卷

下图是所有配置都完成以后, 只要构建compose命令 它的镜像就会构建,容器就会部署

把cloud-demo上传服务器:

docker-compose --help 可以查看相关文档命令

docker-compose up -d 就是后台运行

运行成功 可以通过docker ps 可以查看 容器状态

Docker镜像仓库

常见镜像仓库服务:

docker 和 dockerhub 都属于公共仓库

但是企业在开发的时候,肯定不能把企业的东西公开出来,这时候就需要搭建自己的私有仓库

 带有图形化的界面版本的仓库:

配置docker的信任地址:

这个文件就是来记录 这个信息的 daemon.json

如果这个文件里面有配置其他的 路径 ,在换行的时候 要有  , 逗号结尾, 最后一行不需要

 然后在服务器创建一个空的文件, 把上面带有图形化版本的 compose.yml文件上传上去,

然后启动

 

启动成功以后  就可以通过域名+8080 端口访问到 这个ui界面.... (ui界面配置 是上面  带有图形化那个配置信息)

 向私有仓库推送本地镜像

也就是宿主机打包好的 镜像 推送到私有仓库去

私有仓库配置成功,  下图是访问成功的图形界面,  展示的是  向私有仓库推送成功的 nginx镜像

 向私有仓库推送 镜像总结

总结

    过了一遍docker  懂了3%, 每天都在和生活,工作,内心搏斗....

有颓废,有迷茫,最近的斗志又回来了..

最近很烦恼,因为也是因为钱, 我真俗气....

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是汤圆丫

怎么 给1分?

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

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

打赏作者

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

抵扣说明:

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

余额充值