Docker多容器部署
来源:互联网 发布:粉尘检测数据 编辑:程序博客网 时间:2024/06/05 20:37
docker的大名相信大家已经耳熟能详, 这个已经风靡了2年+的神器,今天我们也来把玩下.
这里必须贴下docker的标志性logo,虽然有过几次变迁,但集装箱没变,这艘鲸鱼般的大船也没变,装(build)-载(ship)-运(run)的核心必须没变。
这里必须澄清下这艘只装载集装箱的大船,其实排水量并不大,这里的意思是要表明它比vm优越的多的地方:是它占用资源小或者说性能开销小,资源利用率高(这些已经有很多测评了),启动速度快(1s+)。
好了,不说废话了,直接来干货。这里的集装箱就是容器container,docker能装载各种容器,只要你能做成模板塞进集装箱里(我们称之为镜像image)。
这里我只且把玩几条命令来衬托docker的强大:
需求:部署运行mysql的spring-boot-app应用,并用nginx代理。
部署mysql 并创建数据库:
docker pull daocloud.io/library/mysql:5.7.15 (拉取并获得镜像)
docker run -d--
name mysql -v /home/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -daocloud.io/library/mysql:5.7.15(启动容器并使用外置数据文件)
docker exec -it mysql /bin/sh (进入到容器内并开启命令行)
/>mysql -uroot -p (连接mysql)
/>create databases spring-boot-test;
/>exit部署spring-boot-app (这里我已经把部署包打包并制作成镜像了):
docker pull jawfneo/spring-boot-docker
docker run -d--
name spring-boot-app -p 8080:8080--
link=mysql:db-container spring-boot-app (link链接mysql容器以以db-contianer的别名获得ip地址访问,在app里面有配置mysql的db引用)部署配置nginx (这里配置有些多,当然也可以放入到镜像文件制作成可重用镜像):
docker pull daocloud.io/library/nginx:mainline
docker run -d--
name nginx -p 80:80 -v /home/application/nginx/nginx.conf:/etc/nginx/nginx.conf--
link=spring-boot-app:app-container daocloud.io/library/nginx:mainline (启动容器并使用外置配置)
docker cp nginx:/etc/nginx/nginx.conf ./nginx.conf (从容器内拷贝配置文件到宿主机器外)
修改外置nginx.conf:
注释掉include /etc/nginx/conf.d/*.conf;
增加下面内容
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://app-container:8080;
}
}
重启容器
docker restart nginx
docker ps 查看下状态
剩下的就是以80端口去访问我们的app了:)
#
- Docker多容器部署
- 容器部署解决方案Docker
- 容器部署解决方案Docker
- Docker 容器部署 Consul 集群
- docker容器部署apollo方法
- 使用docker部署nginx容器
- 容器部署解决方案Docker详解
- docker部署shipyard容器管理工具
- docker web应用多容器开发环境部署
- 在Docker容器中部署Web应用
- Docker容器中部署静态网页
- 6.Docker容器连接部署Neo4j
- 在docker容器中部署Web项目
- docker中容器nginx部署网站
- 项目docker容器化部署步骤
- Docker部署项目到tomcat容器
- Docker:Swarm + Stack 一站式部署容器集群
- docker容器下运行tomcat、部署应用
- char、short、long、double占几个字节,32位机中
- 数据类型
- scala-Problem01-05
- nginx常用的流量分离技术
- Android 长按Listview显示CheckBox,实现批量删除【转】
- Docker多容器部署
- Android权限汇集
- Android中的Adapter 详解(一)
- 操作系统的相关计算题
- 138. Copy List with Random Pointer
- 单片机上课笔记
- 树莓派使用USB摄像头和motion实现监控
- Think in Java中多线程所接触到且需要学习的类和接口
- Swift之?和!