docker-compose 使用技巧(二)
一:同段网络配置
docker 同段网络配置
1.去掉 /etc/docker/damon.json文件
2.创建网络
docker network create --subnet=172.18.0.0/16 docker1
创建一个 docker1 的网络 再 yml文件中指定
3.yaml文件中配置
version: "3"
services:
service_ms_server:
image: "ms-jdk8"
networks:
- docker1
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "/data/hk_fat_ms/ms-app/app:/root/docker_workspace/app"
- "/data/hk_fat_ms/logs:/logs"
- "/data/hk_fat_ms/ops:/ops"
restart: "always"
working_dir: /root/docker_workspace/app
#command: bash /root/docker_workspace/app/command.sh
command: nohup java ${real_java_param_jvm} -Dserver.port=${container_port} -Dapp.id=${ms_app_id} -Dapollo.meta=${applo_meta_url} -Dtsf_consul_ip=${tsf_consul_ip} -Dtsf_consul_port=${tsf_consul_port} -Denv=${apollo_env_type} -jar ${java_file_name} &
environment:
LANG: "C.UTF-8"
#15672:控制台端口号
#5672:应用访问端口号
ports:
- "${host_port}:8080"
#extra_hosts:
# - "test.sms.uu.cc:10.72.12.17"
# - "test.user:center.uu.cc:10.72.12.77"
container_name: ${container_name}
networks:
docker1:
external: true
二:配置nginx案例
1 .env
container_name=container_idreamsky-microservice-nginx
host_port=80
container_port=80
2.docker-compose.yml
version: "3"
services:
service_ms_nginx:
image: "nginx"
volumes:
- "/data/compose/ms-webui/logs:/var/log/nginx"
- "/data/compose/ms-webui/nginx:/etc/nginx"
- "/data/compose/ms-webui/app/webui:/var/www"
restart: "always"
#command: nginx
environment:
LANG: "C.UTF-8"
ports:
- "${host_port}:80"
container_name: ${container_name}
3.文件内容
app/webui/index.html
this is docker test by ledou
4.nginx/conf.d/meng.com.conf
server {
listen 80;
server_name meng.com;
root /var/www;
index index.html;
access_log /var/log/nginx/webui.access.log;
error_log /var/log/nginx/webui.error.log;
#index index.php index.html index.htm;
#allow 218.18.232.228;
#allow 210.21.221.18;
#deny all;
}
5.目录结构
6.启动服务(后台运行)
docker-compose up -d
Creating network "ms-webui_default" with the default driver
Creating container_idreamsky-microservice-nginx ... done
查看
7.停止服务
docker-compose down
Stopping container_idreamsky-microservice-nginx ... done
Removing container_idreamsky-microservice-nginx ... done
Removing network ms-webui_default
8.访问测试
三:配置java 服务
1:Dockerfile
#依赖的基础为centos 系统
FROM centos
RUN yum -y update && yum install -y vim curl
ADD jdk-8u71-linux-x64.rpm /usr/local/
RUN cd /usr/local/ && rpm -ivh jdk-8u71-linux-x64.rpm
RUN cd /usr/local/ && rm -f jdk-8u71-linux-x64.rpm
#设置java 相关的环境变量
ENV JAVA_HOME /usr/java/jdk1.8.0_71
ENV JAVA_BIN /usr/java/jdk1.8.0_71/bin
ENV JRE_HOME /usr/local/jdk1.8.0_71/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV LANG C.UTF-8
#依赖的基础为ubuntu系统
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y vim curl
ADD jdk1.8.0_191.tar.gz /usr/local/
#设置java 相关的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV JRE_HOME /usr/local/jdk1.8.0_191/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH $PATH:$JAVA_HOME/bin:$JRE_HOME/bin
ENV LANG C.UTF-8
2:ENV环境
.env
real_java_param_jvm=-Xms512M -Xmx1024M -Xss512k -Dtsf_application_id=a -Dtsf_group_id=b -Dapollo.bootstrap.enabled=true
ms_app_id=ms-stat
applo_meta_url=http://192.168.10.66
consul_ip=192.168.10.66
consul_port=8500
apollo_env_type=FAT
consul_discovery_ipAddress=192.168.10.66
java_file_name=ms-stats-0.0.1-SNAPSHOT.jar
container_name=container_idreamsky-microservice-stat
host_port=8081
container_port=8080
3:docker-compose.yml
version: "3"
services:
service_ms_server:
image: "ms-jdk8"
volumes:
- "/etc/localtime:/etc/localtime:ro"
- "/etc/timezone:/etc/timezone:ro"
- "./app:/root/docker_workspace/app"
- "./logs:/logs"
- "./ops:/ops"
restart: "always"
working_dir: /root/docker_workspace/app
#command: bash /root/docker_workspace/app/command.sh
command: nohup java ${real_java_param_jvm} -Dserver.port=${container_port} -Dapp.id=${ms_app_id} -Dapollo.meta=${applo_meta_url} -Dtsf_consul_ip=${cons
ul_ip} -Dtsf_consul_port=${consul_port} -Denv=${apollo_env_type} -Dspring.cloud.consul.discovery.ipAddress=${consul_discovery_ipAddress} -Dspring.cloud.con
sul.discovery.port=${host_port} -jar ${java_file_name} &
#command: nohup java ${real_java_param_jvm} -Dapp.id=${ms_app_id} -Dapollo.meta=${applo_meta_url} -Dtsf_consul_ip=${consul_ip} -Dtsf_consul_port=${cons
ul_port} -Denv=${apollo_env_type} -Dspring.cloud.consul.discovery.ipAddress=${consul_discovery_ipAddress} -Dspring.cloud.consul.discovery.port=${host_port}
-jar ${java_file_name} >> start.log 2>&1 &
environment:
LANG: "C.UTF-8"
#15672:控制台端口号
#5672:应用访问端口号
ports:
- "${host_port}:8080"
extra_hosts:
- "test.sms.uu.cc:10.72.12.17"
- "test.usercenter.uu.cc:10.72.12.77"
container_name: ${container_name}
4:附属建立
/data/compose/ms-app
把文件放到 app目录中