部署tomcat

1.1 下载tomcat       docker pull tomcat:7-jre8

1.2 部署容器  docker run -di --name=tomcat -p 8080:8080 -v /app:/usr/local/tomcat/webapps --privileged=true tomcat:7-jre8

(我们这里是自启动tomcat,并且把宿主机的app文件夹直接映射到容器的webapps文件夹,如果不映射,我们则需要把项目从宿主机中复制到webapps目录下)

1.3 因为容器默认是启动的,它会自动解压war包,所以我们可以直接通过    宿主机ip:宿主机映射端口/url     来访问!

部署nginx

2.1 下载nginx  docker pull nginx

2.2 部署容器   docker run -di --name=nginx -p 80:80  nginx:latest   (这里我们没有和部署tomcat一样映射文件,所以做任何操作都必须到容器里面的文件夹操作才行)

2.3 配置负载均衡

  2.3.1 nginx容器的配置文件在/etc/nginx/nginx.conf文件里,我们先把它copy到宿主机上。

         docker cp nginx:/etc/nginx/nginx.conf /nginx.conf

  2.3.2  查看tomcat容器的IP地址。   docker inspect tomcat    ===》  "IPAddress": "172.17.0.2",

  2.3.3 在宿主机修改配置文件    vim /nginx.conf

user  nginx;
worker_processes 1; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections 1024;
} http {
include /etc/nginx/mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; #====================== 上面都是默认配置 =====================
#我们这里自定义一个反向代理
server {
# 监听80端口
listen 80;
server_name www.wulei.com;
location / {#相当于项目的WEB-INF目录
proxy_pass http://172.17.0.2:8080;#监测的是tomcat容器的ip和地址
}
}
}

  2.3.4 把改好的配置文件传到容器原来的地方;  docker cp /nginx.conf nginx:/etc/nginx/nginx.conf

  2.3.5 重启容器, 测试。

     

部署redis

  1.下载容器 docker pull redis

  2.创建启动 docker run -id --name=myredis -p 6399:6379 redis:latest

  

搭建docker私库

下载仓库镜像
[root@localhost ~]# docker pull registry
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 67fa590cfc1c 2 months ago 202MB
registry latest f32a97de94e1 7 months ago 25.8MB
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 67fa590cfc1c 2 months ago 202MB
registry latest f32a97de94e1 7 months ago 25.8MB
制作容器
[root@localhost ~]# docker run -di --name=myregistry -p 5000:5000 registry
1f23f98bb7da3caab2c185ad7a72a5faa7a1b87862b2e6e8117f61e107a237d9
[root@localhost ~]#
此时浏览器就能访问了,此时由于仓库没有镜像,所以是空数组:http://127.0.0.1:5000/v2/_catalog

  

私库镜像上传及下载

修改配置文件,是docker信任远程仓库(添加   {"insecure-registries":["192.168.21.101:5000"]}   )
[root@localhost ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://4e70ba5d.m.daocloud.io"] ,
"insecure-registries":["192.168.21.101:5000"]
}
重启
[root@localhost ~]# systemctl restart docker
[root@localhost file]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jdk1.8 latest b591f5c69edd 40 minutes ago 584MB
centos 7 67fa590cfc1c 2 months ago 202MB
registry latest f32a97de94e1 7 months ago 25.8MB
给镜像打标签
[root@localhost ~]# docker tag jdk1.8 192.168.21.101:5000/jdk1.8
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.21.101:5000/jdk1.8 latest b591f5c69edd 44 minutes ago 584MB
jdk1.8 latest b591f5c69edd 44 minutes ago 584MB
centos 7 67fa590cfc1c 2 months ago 202MB
registry latest f32a97de94e1 7 months ago 25.8MB
上传镜像
[root@localhost ~]# docker push 192.168.21.101:5000/jdk1.8
The push refers to repository [192.168.21.101:5000/jdk1.8]
aab02c8aa0ce: Pushing 125.4MB/381.7MB
bd90af6019ef: Pushed
877b494a9f30: Pushing 48.89MB/201.9MB
下载镜像
docker pull 192.168.21.101:5000/jdk1.8   

部署mysql

部署启动 指定容器名称为mysql 存储地址挂载到宿主机 端口映射为3306 指定ROOT账户的密码为root
  docker run --name mysql -v /opt/data/mysql:/var/lib/mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.4

部署rabbitmq

这里直接用run命令,如果本地没有这个镜像的话,docker会先去下载
  docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p5672:5672 daocloud.io/library/rabbitmq:3.6.10-management

部署zookeeper

[root@docker ~]# docker run --name zookeeper -v /opt/data/zksingle:/data -p 2181:2181 -e ZOO_LOG4J_PROP="INFO,ROLLINGFILE"  -d zookeeper:3.4.13
Unable to find image 'zookeeper:3.4.13' locally
3.4.: Pulling from library/zookeeper
8e402f1a9c57: Pull complete
4866c822999c: Pull complete
cf419f3f41ff: Pull complete
88430b15d43f: Pull complete
d5a9723280f1: Pull complete
c43110341cd8: Pull complete
9ec9c92edf13: Pull complete
cdf8329cd90a: Pull complete
Digest: sha256:8832a49f7ee6399c608e9a666e294adeaef0e4b1bc540c60ac75b8ec4b41f572
Status: Downloaded newer image for zookeeper:3.4.
34c73b01afc7dd8a2e04aa8e5f91d8f9ee5add1e353f3f65df05bf33290c8a04
[root@docker ~]# docker ps | grep zookeeper
34c73b01afc7 zookeeper:3.4. "/docker-entrypoint.…" minutes ago Up minutes /tcp, 0.0.0.0:->/tcp, /tcp zookeeper
[root@docker ~]#

2. Docker部署tomcat, nginx, redis,及docker私有仓库的更多相关文章

  1. Docker部署Tomcat,Nginx,Redis应用

    一.tomcat部署 1.拉取tomcat镜像 docker pull tomcat:7-jre7 2创建tomcat容器 创建容器用于部署单点登录系统(CAS)  -p表示地址映射 docker r ...

  2. mysql|tomcat|nginx|redis在docker中的部署

    MySQL部署 拉取MySQL镜像 docker pull mysql 查看镜像 创建MySQL容器 docker run -di --name pinyougou_mysql -p 33306:33 ...

  3. Docker部署tomcat+nginx+mysql,创建一个tomcat集群

    Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...

  4. 【原创】运维基础之Docker(2)通过docker部署zookeeper nginx tomcat redis kibana/elasticsearch/logstash mysql kafka mesos/marathon

    通过docker可以从头开始构建集群,也可以将现有集群(配置以及数据)平滑的迁移到docker部署: 1 docker部署zookeeper # usermod -G docker zookeeper ...

  5. 【转】Docker部署Tomcat及Web应用

    Docker部署Tomcat及Web应用 - Scofield_No1的博客 - CSDN博客https://blog.csdn.net/qq_32351227/article/details/786 ...

  6. Docker容器和本机之间的文件传输 使用Docker部署Tomcat项目

    Docker容器和本机之间的文件传输. http://blog.csdn.net/leafage_m/article/details/72082011 使用Docker部署Tomcat项目 http: ...

  7. Docker部署Tomcat实例

    1.使用Docker部署Tomcat服务 http://www.open-open.com/lib/view/open1455717671698.html 2.搭建docker私有仓库 http:// ...

  8. 在华为云ECS上手工通过Docker部署tomcat

    本文介绍了如何在华为云上ECS上手工通过Docker部署tomcat,并提供了Docker常用操作 一.环境准备 ECS:操作系统版本:    CentOS Linux release 7.6.181 ...

  9. docker部署mysql,nginx,php,并上传镜像到私有仓库

    前言 最近公司准备把现有环境全部搞成容器化,所以笔者就先了解了一下docker,并搞了一搞,并把自己搞的过程记录下来.话不多说直接开干 环境说明 Centos7 Docker version 18.0 ...

随机推荐

  1. 51Nod 1433 0和5 (数论 && 被9整除数的特点)

    题意 : 小K手中有n(1~1000)张牌, 每张牌上有一个一位数的数, 这个字数不是0就是5.小K从这些牌在抽出任意张(不能抽0张), 排成一行这样就组成了一个数.使得这个数尽可能大, 而且可以被9 ...

  2. quartz的配置文件说明

    # Default Properties file for use by StdSchedulerFactory # to create a Quartz Scheduler Instance, if ...

  3. tensorflow的变量作用域

    一.由来 深度学习中需要使用大量的变量集,以往写代码我们只需要做全局限量就可以了,但在tensorflow中,这样做既不方便管理变量集,有不便于封装,因此tensorflow提供了一种变量管理方法:变 ...

  4. 在最新的 create-react-app 中添加 less 支持

    前置知识: 把 webpack 的相关配置暴露出来 运行 git add -A 运行 git commit -m 'project init' 运行 yarn eject 然后选 y 项目中多出来两个 ...

  5. 微信小程序访问后台出现 对应的服务器证书无效。控制台输入 showRequestInfo() 可以获取更详细信息。

    检查微信开发者平台配置 https 服务端 nginx 配置 ssl 协议是否有效 在开发者工具中可以使用(详情 > 不校验合法域名.web-view(业务域名).TLS 版本以及 HTTPS ...

  6. Java缓存机制

    1 Java缓存 1.1 jvm内置缓存 Java中实现缓存的方式有很多,比如用static hashMap基于内存缓存的jvm内置缓存,简单不实用,保对象的有效性和周期无法控制,容易造成内存急剧上升 ...

  7. crontab定时调度shell脚本

    本人最近要用crontab做一个定时调度任务,调一个启动脚本去执行jar包,并给main方法传一个日期参数. Linux系统:CentOS7 输入: crontab -e 在里面编写: SHELL=/ ...

  8. &&的运算顺序

    先判断“&&”左侧的表达式,左侧的表达式为真时,再运算右侧的表达式.如左侧为假,则不运算右侧.

  9. LeetCode_21.合并两个有序链表

    LeetCode_21 LeetCode-21.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回. 新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2-> ...

  10. RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素

    转自:http://blog.chinaunix.net/uid-26000296-id-4932826.html 编码器用FMLE,用手机秒表作为延迟计算. 结论: 1. 影响延迟的三个重要因素:网 ...