本文最后更新于:几秒前
docker中有两个概念,容器与镜像。
镜像我们可以简单的理解为是装机用的光盘,而容器就是我们用光盘所装的一个系统。实际上我们就是由镜像生成一个容器,一个镜像可以生成多个容器(只要容器互不相冲突)。
而镜像的生成就是由配置文件来决定(配置文件参数可由后期运行指令等等操作更改),具体如何配置不详细说明。
Banner: カントク - COLORS
配置文件例子
Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
FROM 192.168.1.2:5000/library/centos-jdk:1.7.79
MAINTAINER kurenai [email protected]
ADD target/supervise-svc-0.0.1-SNAPSHOT.jar /usr/local RUN chmod u+x /usr/local/supervise-svc-0.0.1-SNAPSHOT.jar
EXPOSE 1234
CMD ["/bin/bash"]
ENTRYPOINT ["java","-jar","-Xms2048m", "-Xmx2048m", "-XX:PermSize=256M", "-XX:MaxPermSize=256M","/usr/local/supervise-svc-0.0.1-SNAPSHOT.jar"]
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
FROM xxx.xxx.com:5000/library/ui-nginx:latest
MAINTAINER kurenai [email protected]
WORKDIR /usr/local/nginx
ADD ui.tar.gz /usr/local/nginx/html/
ADD nginx.conf /usr/local/nginx/conf/
EXPOSE 80
CMD ["/bin/bash"]
ENTRYPOINT /opt/run.sh
|
1 2 3 4 5 6 7 8 9
| docker ps docker images docker build docker rm docker rmi docker pull docker logs -f docker restart docker stop
|
docker-compose
能够比较集中的管理镜像和容器的部署问题,不必用像原生docker那样一个一个项目进行打包镜像生成容器,只需要把n个项目的配置写在配置文件中即可进行批量打包,拉取镜像,生成容器
配置文件例子
docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| version: '2.2' services: base: image: 192.168.1.2:5000/test/base-svc:0.0.1-SNAPSHOT build: /opt/dockerfile/base-svc restart: always environment: defaultZone: http://192.168.1.3:1200/eureka/ ports: - "1430:1430" network_mode: "bridge"
supervise: image: 192.168.1.2:5000/test/supervise-svc:0.0.1-SNAPSHOT build: /opt/dockerfile/supervise-svc restart: always environment: defaultZone: http://192.168.1.3:1200/eureka/ ports: - "1570:1570" network_mode: "bridge"
|
1 2 3 4 5 6
| docker-copmpose build docker-compose up -d docker-compose logs -f docker-compose pull docker-compose restart docker-compose stop
|
实际生产环境部署项目
/opt/dockerfile
文件夹下是每个项目的目录,每个目录下是一个Dockerfile配置文件+打包的项目文件(java为.jar, react为tar.gz, 视项目和配置文件而定)
/opt/cloud
目录下是分的几个类,把几个项目归为一起,项目下是docker-compose.yml配置文件
以后端java项目meeting-svc
为例
- 打包项目为jar包,
- 将jar包放在
/opt/dockerfile/meeting-svc
目录下
- 进入到
/opt/cloud/service
- 运行指令
docker-compose build meeting
(配置文件中配置的项目名为meeting
)打包镜像
- 运行
docker-compose up -d meeting
更新容器并运行
- 用
docker-compose logs -f meeting
进行查看日志
ps: 后端打包为tar -zcvf xxx.tar.gz -C dist/ . #dist为编译文件目录