一、问题
每次发版本到hub上,我都要进入服务器停止容器,删除容器,删除镜像,pull镜像,启动容器,敲命令非常麻烦。如果服务器的docker容器多的话,都要发布。那么部署就是一件非常头痛的事情了。所以需要docker-compose来解决这个问题。
二、环境
java编写jdk1.8的程序。需要用docker部署方式部署到服务器。其中docker安装用yum非常容易,所以此文章进行省略
二、docker-compose安装
1、安装 EPEL源
yum install -y epel-release
yum install gcc
yum install gcc-c++
2、安装pip
yum install -y python-pip
3、安装python-devel.x86_64
yum install python-devel
4、安装docker-compose
pip install docker-compose
5、验证安装docker-compose
docker-compose -version
6、如果验证报如下错误
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 5, in <module>
from compose.cli.main import main
File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 23, in <module>
from ..bundle import get_image_digests
File "/usr/lib/python2.7/site-packages/compose/bundle.py", line 12, in <module>
from .config.serialize import denormalize_config
File "/usr/lib/python2.7/site-packages/compose/config/__init__.py", line 6, in <module>
from .config import ConfigurationError
File "/usr/lib/python2.7/site-packages/compose/config/config.py", line 50, in <module>
from .validation import match_named_volumes
File "/usr/lib/python2.7/site-packages/compose/config/validation.py", line 12, in <module>
from jsonschema import Draft4Validator
File "/usr/lib/python2.7/site-packages/jsonschema/__init__.py", line 33, in <module>
import importlib_metadata as metadata
File "/usr/lib/python2.7/site-packages/importlib_metadata/__init__.py", line 9, in <module>
import zipp
File "/usr/lib/python2.7/site-packages/zipp.py", line 12, in <module>
import more_itertools
File "/usr/lib/python2.7/site-packages/more_itertools/__init__.py", line 1, in <module>
from .more import * # noqa
File "/usr/lib/python2.7/site-packages/more_itertools/more.py", line 460
yield from iterable
^
SyntaxError: invalid syntax
则卸载docker-compose,执行以下命令
pip install --upgrade pip
yum groupinstall "Development Tools"
pip uninstall docker-compose
pip install docker-compose --ignore-installed requests
四、docker-compose.yml 编写并完成第一次启动(这里我只列举我用到的)
1、使用工具:idea。eclipse没有提示,不清楚安装什么插件。如果有指导的请您给我留言。
2、yml编写如下(docker-compose.yml)
version: '2' #版本
services: #服务
replenish:#服务名称
image: reg.sfdomain.com/esp_test/replenish:0.0.2-SNAPSHOT #镜像
container_name: replenish_devgroup_8084 #容器名称
restart: always #自动重启
network_mode: "host" #使用--net=host模式
mem_limit: 1224m #限制容器内存
memswap_limit: -1
logging: #限制容器日志大小,由于是开发平台所以设置较小,单位未 m或者g
driver: "json-file"
options:
max-size: "1m"
max-file: "5"
3、将文件copy到centos服务器中,比如说 /dockerfile
4、进入dockerfile
cd /dockerfile
5、启动服务
docker-compose up -d