github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql的镜像,但根据其参考文档在mac上尝试了数次,将mysql数据库文件存储在mac本机时,启动总是报错,大意是docker容器运行时,容器的当前用户mysql,由于权限不足无法mac本机上创建文件,stackoverflow上有人解决了这个问题,参考其解决方法,重新整理了下Dockerfile文件,内容如下(主要是增加了vim的安装,以方便直接在容器内修改mysql配置文件):
1
2
3
4
5
6
7
8
9
|
FROM mysql:latest MAINTAINER jimmy.yang <yjmyzz@126.com> LABEL Descripttion= "This image is build for MAC to use mysql" Vendor= "GitHub" Version= "latest"
RUN apt-get update RUN apt-get -y install vim
RUN usermod -u 1000 mysql
RUN mkdir -p /var/run/mysqld
RUN chmod -R 777 /var/run/mysqld
|
将上面这段保存成名为"Dockerfile"的文件,然后在当前目录下,输入:
1
|
docker build -t "yjmyzz/mysql-osx:latest" .
|
注意最后有一个点,-t后的内容为image的tag,可以根据需要修改成自己的内容。build完成后,可用docker images ls确认下是否在本机生成了名为yjmyzz/mysql-osx的镜像,接着就可以创建mysql容器了,示例如下:
1
2
3
4
|
docker run -d -h mysql \ - v /Users/yjmyzz/data/db/mysql : /var/lib/mysql \
-p 0.0.0.0:3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 yjmyzz /mysql-osx
|
上面有几个参数值大家根据需要自行调整:
-v 后面的/Users/yjmyzz/data/db/mysql 为mac本机的目录,用于存放mysql数据库文件(创建前要注意该目录必须为空,且必须是当前登录用户~/下,且要有读写权限)
-p 后面的部分为端口映射
MYSQL_ROOT_PASSWORD=123456为root账号的密码
mac上连接验证:
1
|
mysql -h192.168.99.100 -uroot -p123456 |
上面的ip地址,大家换成自己虚拟机default的IP
mysql参数调整:
先进入容器
1
|
docker exec -it mysql sh
|
然后在容器内
1
|
vi /etc/mysql/my .cnf
|
注意:修改完mysql参数后,如果直接在容器内 service mysql restart ,容器就退出了(因为mysql stop完成的瞬间,没有命令在运行,容器生命周期结束),需要在mac机上执行
1
|
docker start mysql |
上传镜象
为了以后使用方便,可以将mac版的mysql镜像上传到daocloud.io,命令如下:
1
2
3
|
docker login daocloud.io docker tag yjmyzz /mysql-osx daocloud.io /yjmyzz/mysql-osx :latest
docker push daocloud.io /yjmyzz/mysql-osx :latest
|
提醒:daocloud push上去的镜像,目前未提供删除功能(客服说是以后会提供),一旦上传了,目前就没办法删除了,所以千万不要在镜像里放一些敏感信息。
参考文章:
docker学习(6) docker中搭建java服务及nginx反向代理
先看下容器规划:
上图中mysql容器的搭建见上篇博客,service1/2为java rest service,创建脚本如下:
1
2
3
4
5
6
7
8
9
10
11
|
docker run -d -h service1 \ - v /Users/yjmyzz/data/service : /opt/service \
--name service1 \
--link mysql:mysql -p 0.0.0.0:9081:8080 java \
java -jar opt /service/spring-boot-rest-framework-1 .0.0.jar
docker run -d -h service2 \ - v /Users/yjmyzz/data/service : /opt/service \
--name service2 \
--link mysql:mysql -p 0.0.0.0:9082:8080 java \
java -jar opt /service/spring-boot-rest-framework-1 .0.0.jar
|
注:对外的端口映射可选,因为最后会用nginx转发,暴露出来是为了方便单独测试service1及service2是否正常。
nginx容器的创建脚本如下:
1
2
3
4
5
6
7
8
|
docker run -d -h nginx1 \ - v /Users/yjmyzz/data/nginx/html : /usr/share/nginx/html :ro \
- v /Users/yjmyzz/data/nginx/conf/nginx .conf: /etc/nginx/nginx .conf:ro \
- v /Users/yjmyzz/data/nginx/conf/conf .d: /etc/nginx/conf .d:ro \
-p 0.0.0.0:9000:80 \
--link service1:service1 \
--link service2:service2 \
--name nginx1 nginx
|
注:因为nginx1要访问service1/2,所以用了二个link来打通nginx1到service1/2的网络访问,另外有3个-v参数,分别用于映射静态资源、主配置文件、虚拟主机映射文件,最后将80端口映射到mac本机9000端口。
~/data/nginx/conf/nginx.conf参考配置如下:
~/data/nginx/conf/conf.d/default.conf参考配置如下:
参考文章:
相关推荐
在本文中,我们将详细介绍如何使用 Docker 安装 WordPress,并通过 Nginx 反向代理,绑定域名,配置 HTTPS。 首先,我们需要安装 Docker,若您已经安装了 Docker,可以跳过这一步骤。如果您还没有安装 Docker,可以...
本手册将详细讲解在Linux CentOS系统上安装与配置Java JDK、MySQL数据库、GitLab代码管理工具、Docker容器化平台以及Nginx-Lua模块的过程。 1. **Java JDK安装**: - JDK(Java Development Kit)是Java编程语言的...
【标题】"docker-compose构建通用...综上所述,这个包提供了一种便捷的方式来创建一个包含PHP后端、MySQL数据库和Nginx反向代理的开发或生产环境,通过Docker Compose实现一键部署和管理,大大提高了开发和运维的效率。
在这个"docker-compose安装mysql、nacos、nginx、redis文件及相关配置"的主题中,我们将深入探讨如何使用Docker Compose来部署这四个关键的组件:MySQL数据库、Nacos服务发现与配置中心、Nginx反向代理服务器以及...
这个过程包括创建Docker容器、配置网络、管理卷、配置nginx反向代理等。 标签部分说明本文涉及的关键词包括Docker、nginx、Tomcat集群,这些关键词都分别在标题和描述中提及,它们是本文的核心内容。 部分具体内容...
2. 考虑到负载均衡,可能需要配置额外的网络策略,比如使用Nginx反向代理来分散请求到Configservice和Adminservice集群的不同实例。 3. 数据持久化是必要的,可以使用Docker卷或云存储服务来保存MySQL的数据,防止...
然后,需要部署 MySQL,使用命令 docker search mysql 搜索镜像,docker pull mysql:5.7 拉取镜像,创建容器,设置端口映射和目录映射。 五、Nginx 介绍 Nginx 是一个轻量级的 Web 服务器、反向代理服务器和电子...
Nginx 作为反向代理和静态内容服务器,MySQL 提供关系型数据库服务,PHP 用于动态内容处理。LNMP 提供了高效的 Web 应用架构,通过 Docker 进行容器化,可以提升部署的便捷性和环境的一致性。 - **Docker 与 Docker...
主要介绍了Docker 部署 Django+Mysql+Redis+Gunicorn+Nginx,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
【标题】:“docker-laravel”项目是为Laravel 5应用程序构建的一个 Docker 化环境,它利用了 docker-compose 来管理Gulp、PHP-FPM、MySQL和nginx等服务。 【描述】:此项目的主要目标是简化Laravel 5开发过程中的...
3. **配置Nginx**:设置反向代理,将请求转发给Flask应用。 4. **配置Flask应用**:编写Flask应用代码并创建相应的Dockerfile。 5. **配置MySQL**:编写MySQL初始化脚本。 6. **配置Docker Compose**:编写docker-...
3. **nginx**: 作为反向代理服务器,Nginx将HTTP请求路由到Monocular API和UI服务,提供HTTPS支持和基本的安全性。 4. **monocular-db**: 这是MySQL数据库服务,存储Monocular的元数据。在配置中,你可能需要自定义...
掌上办公集群服务器01主要运行的应用服务包括掌上办公nginx代理服务、掌上办公tomcat服务和掌上办公mysql服务。掌上办公集群服务器01还包括一些定时任务,如nginx日志切割、自动判断容器启动和删除30天之前的tomcat...
Nginx作为反向代理服务器,用于接收HTTP请求并将它们转发到Metabase容器。在Docker Compose文件中,Nginx配置应该已经设置好,但如果需要自定义,可以在`nginx/conf.d/default.conf`中进行调整。 5. **访问...
"bitnami-docker-wordpress-nginx"结合了Docker的便携性、NGINX的高性能以及WordPress的易用性,为用户提供了一种强大且灵活的解决方案来搭建和管理WordPress站点。无论是个人博客还是企业级项目,这个Bitnami ...
系统部署可能涉及Tomcat服务器、Nginx反向代理、Docker容器化等技术。 9. **前端技术**:虽然主要标签只提到了Java,但实际项目可能还包含HTML、CSS、JavaScript等前端技术,用于构建用户界面。 总结来说,这个...
在这个案例中,架构由三个主要部分组成:Nginx作为反向代理和静态文件服务器,PHP处理动态请求,以及MySQL存储数据。每个服务都将在Swarm集群中的不同节点上运行两个实例副本,以实现高可用性。 在配置文件方面,...
在构建高性能、高可用性的Web应用环境中,"基于Ubuntu Nginx Mongrel Mysql部署rails monit-5.0"的方案是一个常见的选择。这个方案结合了多种强大的工具和技术,以确保应用程序的稳定运行和高效管理。以下是这些关键...