问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

Docker - 搭建部署(Nginx+Mysql+Redis)应用服务和解决MacDocker0问题...

发布网友 发布时间:2024-09-27 04:44

我来回答

1个回答

热心网友 时间:2024-09-27 20:55

使用docker搭建一个php、redis、mysql、nginx的常用实例,基础好的同学可直接跳过前面的基础讲解,直接开始实战,其中解决了Mac docker中实例间网络不通的问题,对docker宿主机的磁盘映射、网络通信有了更深层次的理解。

镜像操作

1.查看docker版本

2.获取镜像

一般来说,镜像的latest标签意味着该镜像的内容会跟踪最新版本的变更而变化,内容是不稳定的。因此,从稳定性上考虑,不要在生产环境中忽略镜像的标签信息或使用默认的latest标记的镜像,镜像优先在本地查找如果没有就从dockerhub仓库里拉去。

pull子命令支持的选项主要包括:

3.查看镜像

使用docker images命令可以列出本地主机上已有镜像的基本信息。

TAG信息用于标记来自同一个仓库的不同镜像。例如ubuntu仓库中有多个镜像,通过TAG信息来区分发行版本,如18.04、18.10等。

另外,使用inspect命令查看详细信息。

4.存入和导出镜像

导出镜像:

存入镜像:

有不清楚的地方,可以执行帮助命令docker image help

5.删除镜像和实例

这里有一个地方要注意,docker rmi 删除的是镜像,rmi 代表的是images的意思, docker rm 删除的是docker的实例

容器操作

1.登陆容器

bash:以bash的形式进行交互模式

2.删除容器

默认情况下,docker rm命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器,强制删除参数加-f。

3.容器的导出与导入

导出镜像命令

导入镜像命令

4.查看容器

查看容器详情命令

查看容器内进程,b0b5a9371ce4是容器ID

查看docker状态

Docker数据管理

1.数据卷

数据卷(Data Volumes)是一个可供容器使用的特殊目录,它将主机操作系统目录直接映射进容器,类似于Linux中的mount行为。

2.绑定数据卷

除了使用volume子命令来管理数据卷外,还可以在创建容器时将主机本地的任意路径挂载到容器内作为数据卷,这种形式创建的数据卷称为绑定数据卷。

-mount选项支持三种类型的数据卷,包括:

下面使用training/webapp镜像创建一个Web容器,并创建一个数据卷挂载到容器的/opt/webapp目录:

上述命令等同于使用旧的-v标记可以在容器内创建一个数据卷:

另外,本地目录的路径必须是绝对路径,容器内路径可以为相对路径。如果目录不存在,Docker会自动创建。

3.数据卷容器

如果用户需要在多个容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载。

创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:

然后,可以在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷。

注意:使用--volumes-from参数所挂载数据卷的容器自身并不需要保持在运行状态。

端口映射与容器互联

1.从外部访问容器应用

在启动容器时加入映射端口 -p 宿主机端口:容器端口

2.互联机制实现便捷互访

使用--link参数可以让容器之间安全地进行交互。

实战 单独安装部署Mysql、Redis、PHP、Nginx 应用

执行命令,查看本地镜像,stark_lnmp:v1.0 是我之前集成了lnmp1.7的镜像,有需要的同学可以从我要镜像地址

执行命令:

登陆docker:

启动lnmp

mysql测试:

执行结果:

Mysql,redis

2.修改默认配置

3.启动redis

php+Nginx

2.运行

3.安装Nginx

Mac Docker宿主机与容器不能通信问题

问题说明:再容器安装成功后,我遇到一个问题,好久不能得到解答,前几天终于茅塞顿开,为此我在放假期间,特意学了一遍Docker,从数据卷、网络方面入手,我当时所困惑的问题是为什么用客户端从外网可以访问,但是我容器中的PHP代码不能访问呢?

lnmp的docker实例中,php和mysql就可以正常访问到,但是到了容器间通信的时候就链接不到了,但是用客户端软件链接时却可以正确访问到。

访问代码:

“Connection refused”报错信息,是因为没有开启服务端,或者网络不通。我想尽办法都还是不行。

后来知道了底层的网络原理,原因是这样的,Docker的通信默认是网桥,宿主机和容器不在同一个网桥里,Mac的网桥里少了Docker0网段,外部部署的网络之所以能通是因为访问服务时,网段进行了网络的Nat的自动转换,lnmp可以访问到是因为所有的服务都部署在了同一个容器中,原来是这样。

知道的原理确实是不一样的,之后我也遇见过类似的问题,便可轻松化解,下面我说一下这个问题的解决办法。

1. 使用 docker-connector,然后执行以下命令把 docker 的所有 bridge 网络都添加到路由中。

也可以手动修改 /usr/local/etc/docker-connector.conf 文件中的路由,格式是:

配置完成,直接启动服务(需要 sudo,路由配置启动之后仍然可以修改,并且无需重启服务立即生效)

查看容器,启动成功了,问题就解决了,访问时把容器Ip绑定在Dns上就可以了。

测试一下,Mysql、Redis都可以链接了!
...搭建部署(Nginx+Mysql+Redis)应用服务和解决MacDocker0问题

配置完成,直接启动服务(需要 sudo,路由配置启动之后仍然可以修改,并且无需重启服务立即生效)查看容器,启动成功了,问题就解决了,访问时把容器Ip绑定在Dns上就可以了。测试一下,Mysql、Redis都可以链接了!

Flutter搭建私有Pub仓库Docker部署

配置yaml文件信息brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务brewserviceslist2 检测命令brewtapmongodb/brew#4.4版本号brewinstallmongodb-community@4.4#启动服务brewservicesstartmongodb-community@4.4#查看已启动服务...

关于linux学习路线的问题 请教前辈

3. tomcat java应用服务/nginx配合tomcat服务部署及优化第十一阶段:MySQL DBA高级应用实践1. MySQL数据库入门基础命令2. MySQL数据库进阶备份恢复3. MySQL数据库深入事务引擎4. MySQL数据库优化SQL语句优化5. MySQL数据库集群主从复制/读写分离6. MySQL数据库高可用/mha/keepalved第十二阶段:高性能数据库Redis和Memcac...

linux操作系统 课程标准

1. http协议/www服务基础2. nginx web介绍及基础实践3. nginx web精讲结束4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统5. nginx负载均衡深入透彻6. keepalived高可用深入透彻第七阶段:Linux中小规模集群构建与优化(50台)1. 期中架构开战说明+期中架构部署回顾2. 全体昼夜兼程部署期中架构并完成上台述...

云计算主要学哪些课程?

2.基于云应用类软件产品的开发、测试、部署、维护等的云服务应用/开发工程师;3.推广销售云计算管理平台和服务器虚拟化软件及云应用软件系统的产品销售工程师;4.处理客户的技术咨询,解决常见产品技术问题的技术客服;5.为企业或政府搭建云计算管理平台,确保私有云平台顺利上线运行的云平台实施工程师。

做系统运维需要学习些什么?

运维学习内容第1阶段 零基础入门 第2阶段 Linux系统管理&shell编程 第3阶段 百万级访问量集群实战 第4阶段 千万级访问量核心集群实战 第5阶段 一切核心技术的底层支持:云计算集群 第6阶段 尚硅谷专有课程:大数据运维 第7阶段 Python自动化和毕业指导 linux学习路线 ...

linux学习重点有哪些

Linux的学习重点主要有以下几个阶段:首先嵌入式的学习大致分为三个阶段,其一为嵌入式系统开发基础理论阶段;其二为嵌入式系统开发核心;其三为嵌入式开发拓展与实践。系统的来讲主要是以下几点:熟练使用Linux操作系统 精通Linux下C语言编程 精通嵌入式Linux应用开发 掌握ARM处理器平台及其接口硬件开发 掌握...

做Linux运维要学哪些东西?什么顺序?主要需要什么能力?

部署在linux服务器上的应用的了解和维护,比如tomcat apache weblogic nagios cacti等。包括开发人员编写的软件,都需要去进行维护和调优建议,最好了解js和java语言。服务器的各种使用情况的监控,如磁盘,cpu,mem,io等。架构设计的了解,以及自动化运维的脚本编写。比如搭建集群或负载模式的架构等,实现...

云计算主要学习什么课程,跟java有关联吗?

2、云计算高级,包括Linux Shell脚本自动化编程、开源数据库MySQL DBA运维。学完这部分的内容,可以使用awk or sed在命令行中处理文本文件、实现服务器的初始化、批量传输文件、编写运维工具,可以搭建MySQL主从复制的架构实现数据实时备份、可以运维MySQL组建的集群、能够实现数据可视化操作。3、云计算项目,...

Linux课程主要讲什么内容?

第十阶段:Java Tomcat服务及防火墙Iptables 1. iptables防火墙精讲上 2. iptables防火墙精讲下 3. tomcat java应用服务/nginx配合tomcat服务部署及优化 第十一阶段:MySQL DBA高级应用实践 1. MySQL数据库入门基础命令 2. MySQL数据库进阶备份恢复 3. MySQL数据库深入事务引擎 4. MySQL数据库优化SQL语句...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
工艺花茶有哪些 学赵孟頫行书哪个好 薰衣草能和花茶一起泡么 押金是不是拿不回来了? ...时候签了半年的合同,现在房客住了一个月就不住了,没有规定违约金_百... 租房合同签了6个月,住了一个月就想退房了。押一付一。我不要押金 有... vivoiQOOneo5手机找回自己锁上用密码显示网络连接失败咋回事? 户口户口办理流程 流量卡插在笔记本电脑上就可以上网了吗?收费怎么算 以前都不做梦 现在天天做 为什么阿 有方法让我不做梦吗如题 谢谢了_百... 商周青铜器有什么艺术特点 长安CS35码表只显示平均油耗 MySQL入门门门?[第一篇](附Docker使用教程) xwiki-docker迁移全过程记录 Docker安装主从mysql 如何用 Docker 安装运行 mysql? 喝酒第二天腿酸怎么回事 冲上云霄中第一集最后唐亦琛为什么被法国人拉上车? 《冲上云霄》里的意大利在那个地区的 上上签和大吉签哪个好 冲上云霄角色介绍 NVIDIA首席执行官黄仁勋表示30系显卡缺货要持续到2021年,是真的吗? CF4月幸运上上签活动网址是什么? 腹股沟疝的治疗方法有哪些? 上上签都有哪些 西岭雪山全年都下雪吗 西岭雪山滑雪场海拔高度是多少米 开放时间 2022浙江社保缴费多少 2022年浙江个人缴费标准一览 腹股沟疝气怎么治? 腾讯微博想看见好友来自哪个城市,怎么看,记得以前能看见的,好友依法微 ... 《世纪宝鼎》假如让你代表中国向联合国赠送这一世纪宝鼎,你会怎样介绍... 长安cs35路码表保险是哪个? 长安CS35 Plus码表怎么去零? 这个配置换个GTX750Ti的显卡可以吗?浪不浪费?或者有什么显卡推荐 蓉e行换了微信号怎么登? dos能起机玩一些小游戏吗? 请问一个DOS系统时候的小游戏,小人吃蓝糖会变小,吃红糖会变大_百度知... 帮信罪流水33万怎样判刑 笔记本电脑上✔怎么打? 笔记本电脑键盘怎么打勾和叉 我家一台1.5匹空调一台电脑一台电冰箱一个电磁炉一台电视四个照明灯两... 我家里有台1.5P的空调,一台电磁炉,一个洗衣机,一台电脑,还有三台电风... 家有三间房四层楼都有住人有三台2匹空调和两个冰箱三台电视4台电脑3台... ...一个空调,一个冰箱,一台电脑,一台电扇,五个灯,一个电磁炉 我家电表一月用了一千三百度,只有1.5匹挂机空调,请问可能吗? 格力空调1000元以内的型号有哪些 迎接礼仪有哪些注意事项 迎接礼仪注意事项有哪些 理财产品到期未赎回会继续理财吗-理财产品到期未赎回利息还在吗 偶滴歌神啊紫霞仙子唱的什么歌?原唱是谁? 理财到期忘了赎回咋办2022 理财今天投了钱明天能看收益吗
  • 焦点

最新推荐

猜你喜欢

热门推荐