docker-compose实现单机发布

 

docker的安装:

    Centos:   

1、查看本机信息
uname -a
2、更新依赖
yum update
3、安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
4、替换为阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5、安装docker
yum install -y docker-ce
6、Docker守护进程 Server端
systemctl start docker
7、docker version 查看docker client和docker server是否都显示出来了,都显示出来了就表示docker安装成功
docker version 
8、设置开机自启
systemctl enable docker
9、yum makecache就是把服务器的包信息下载到本地电脑缓存起来,fast快速缓存。
yum -y makecache fast

 Ubuntu:

1、安装(安装不动的可以选择换源)
sudo apt-get install docker

 

安装docker-compose

  官网安装教程:https://docs.docker.com/compose/install/

  直接2条命令即可安装完成

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

 

docker-compose常用命令

#上机
docker-compose up -d .
#下机 docker-compose down
#查看日志 docker-compose log #查看单独的一个容器的日志 docker-compose logs

 

发布一个web应用,结构目录如下

    docker-compose实现单机发布

 

 

 

首先是docker-compose.yml

version: '3.3'
services:
  #db是初始化数据库
  db:
    build: ./db/
    #restart是容器如果在宕机的情况下总是重启
    restart: always
    #这是设置mysql的密码
    environment:
      MYSQL_ROOT_PASSWORD: root
  #这是要打包的应用                            
  app:
    build: ./app/
    #依赖上面已经初始化的容器db,这样就不用再去设置网桥来连接两个容器的通信
    depends_on:
      - db
    #开放80端口给外界  
    ports:
      - "80:80"
    restart: always

然后是数据库容器的Dockerfile

# FROM是以哪个镜像为基础创建容器
FROM mysql:5.7
# WORKDIR是移动到docker-entrypoint-initdb.d目录下,如果没有这个目录就会创建这个目录后再移动到这个目录下 WORKDIR /docker-entrypoint-initdb.d
# add是拷贝初始化数据库的文件到这个文件下 ADD init-db.sql .

接下来是app容器的创建

FROM openjdk:8u222-jre
WORKDIR /usr/local/bsbdj
ADD bsbdj.jar .
ADD application.yml .
ADD application-dev.yml .
# EXPOSE是开放容器的80端口给外界访问 EXPOSE 80 CMD ["java","-jar","bsbdj.jar"]

最后把打包好的jar包、配置文件和sql文件放到对应的目录下

有一点需要注意,数据库的连接名需要换成数据库容器的名字

#比如localhost需要换成上面创建的容器名db
url: jdbc:mysql://localhost:3306/xzttxwd?useUnicode=true
url: jdbc:mysql://db:3306/xzttxwd?useUnicode=true

 全部准备完毕后,下面这条命令即可启动容器,默认目录是在docker-compose.yml文件的同级目录下

docker-compose up -d

 

上一篇:docker-compose部署三组主从节点


下一篇:Vue学习(二)