Docker配置使用说明书(httpd、nginx、java程序)

1.Docker介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2.docker安装
1)更新yum

yum update

2)安装docker

yum install docker

3)安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

systemctl start docker.service
systemctl enable docker.service

3.容器安装
3.1.安装基础镜像
docker镜像作为基础容器Docker 需要一个基本的镜像才能运行,我们的所有容器都是(直接或间接)基于这样一个镜像来运行的 。
1)下载centos7

docker pull registry.aliyuncs.com/acs-sample/centos

2)列出docker镜像

docker images

3)为我们的容器创建第一个镜像, 注:-t -i 参数用于创建一个虚拟的命令行。

docker run -t -i imagid 

4)现在我们已经成功的运行了自己的第一个容器,并且进入到容器的命令行界面中。在容器中,我们执行下面的命令:
① yum -y update # 更新软件包
② 安装并配置jdk
a.复制gz文件到容器中的root的用户目录下
Ctrl d退出容器

docker cp jdk8.tar.gz  92c482466609:/usr

b.进入容器

docker start 容器id
docker attach 容器id

c.在容器中解开gz文件

cd usr
tar -zxvf  jdk8.tar.gz

d.建立容器系统的JAVA_HOME目录,移动jdk目录到JAVA_HOME目录

mkdir /usr/lib/jvm
mv jdk1.8.0_72  /usr/lib/jvm

e.设置环境变量
cd /
vi ~/.bashrc

#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_72  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH 

f.使得环境变量马上生效

source ~/.bashrc

安装完成后,按 Ctrl + d 来退出容器的命令行。
执行docker ps -a,可以看到被我们终止的容器
g.把我们刚才所做的改变提交到新的容器:

docker commit CONTAINER ID httpserverbase
docker commit CONTAINER ID realcollbase

容器成功提交后,执行 sudo docker images 可以看到刚才提交的容器。
3.2.配置web前端组件容器
3.2.1.Apache http Server
1)进入httpserverbase容器,首次进入使用docker run 命令以后使用docker start配合docker attach容器id/或者docker exec -i -t 容器id/bin/bash命令。

docker run -i -t httpserverbase

2)安装 apache

yum install httpd

3)修改httpd.conf 配置apache服务
① cd /etc/httpd/conf
② vi httpd.conf

DocumentRoot "/usr/httpwebapps"
<Directory "/usr/httpwebapps">
   ……
</Directory>
<Directory "/usr/httpwebapps">
  ……
</Directory>

4)在usr下创建httpwebapps文件夹

mkdir /usr/httpwebapps

5)在root目录下创建run脚本用于自启动XGCMCS.jar。
① cd root
② vi run.sh

#!/bin/bash
# Make sure we're not confused by old, incompletely-shutdown httpd
# context after restarting the container.  httpd won't start correctly
# if it thinks it is already running.
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

6)将刚才容器提交创建新的镜像容器

docker commit CONTAINER ID httpserver

7)运行新容器并设置主机8080端口映射该镜像80端口并设置容器开机自启动

docker run -i -t -p 8080:80 --restart=always httpserver /root/run.sh

8)退出容器将web程序发布到容器httpserver的usr/httpwebapps下。

docker cp /usr/httpserver/xiegou 89c5b8950cee:usr/httpwebapps/

3.2.2.Nginx
1)进入httpserverbase容器,首次进入使用docker run 命令以后使用docker start配合docker attach容器id/或者docker exec -i -t 容器id/bin/bash命令。

docker run -i -t httpserverbase

2)使用源码安装nginx
① 安装依赖环境
安装gcc编译器

yum install gcc

安装PCRE库,因为Nginx的Rewrite和HTTP核心模块会用到PCRE正则 表达式

yum install pcre pcre-devel

安装zlib,Nginx的各种模块中使用gzip压缩。

yum install zlib zlib-devel

安装OpenSSL,如果服务器提供安全网页时会使用到OpernSSL库。

yum install pernssl openssl-devel

② 安装Nginx

mkdir src && cd src
wget  http://nginx.org/download/nginx-1.13.6.tar.gz
tar zxf nginx-1.13.6.tar.gz
./configure
make
make install

3)安装完修改配置文件/usr/local/nginx/conf/nginx.conf,
cd /usr/local/nginx/conf
vi nginx.conf

#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
#access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  XGCMFD/GRO/hcj/login.html;
        }
        location /real/ {
          proxy_pass http://192.163.20.150:8081/XGCMCS/;
       }
       location /login/{
          proxy_pass http://192.163.20.150:8083/XGCMCS_Base/;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }       
    }   
}
daemon off;

4)在root目录下创建run脚本用于自启动XGCMCS.jar。
cd root
vi run.sh

#!/bin/bash
exec /usr/local/nginx/sbin/nginx

5)将刚才容器提交创建新的镜像容器

docker commit CONTAINER ID httpserver

6)运行新容器并设置主机8080端口映射该镜像80端口并设置容器开机自启动

docker run -i -t -p 8080:80 --restart=always httpserver /root/run.sh

7)退出容器将web程序发布到容器httpserver的usr/httpwebapps下。

docker cp /usr/httpserver/xiegou 89c5b8950cee:usr/local/nginx/html

3.3.配置java程序
1)进入容器

docker run -i -t realcollbase

2)在usr目录下创建文件夹如XGCMCS,并将XXX.jar放到该文件夹下。
从主机复制到容器docker cp host_path containerID:container_path
3)在root目录下创建run脚本用于自启动XGCMCS.jar。
③ cd root
④ vi run.sh

#!/bin/bash
source ~/.bashrc
cd /usr/XGCMCS
java -jar XGCMCS.jar
/bin/bash

4)设置root/run.sh可读可写可执行权限

chmod 777 /root/run.sh

5)将刚才容器提交创建新的镜像容器

docker commit CONTAINER ID realcoll

6)运行新容器并设置主机8081端口映射该镜像8081端口;设置容器开机自启动;调用脚本设置实时采集组建服务自启动。

docker run -i -t -p 8081:8081 --restart=always realcollect /root/run.sh

4.附录
Apache服务自启动脚本

#!/bin/bash
# Make sure we're not confused by old, incompletely-shutdown httpd
# context after restarting the container.  httpd won't start correctly
# if it thinks it is already running.
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

Nginx服务自启动脚本

#!/bin/bash
exec /usr/local/nginx/sbin/nginx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值