Skip to content

Latest commit

 

History

History
222 lines (188 loc) · 9.77 KB

部署.md

File metadata and controls

222 lines (188 loc) · 9.77 KB

centos7安装docker.md

  • 1.卸载自带的docker服务
  • 2.切换成阿里云的yum源
  • 3.安装docker,并设置清华大学加速器(docker镜像下载的加速器)
  • 4.安装docker-compose

Centos7安装docker

# yum remove 通过软件名或者程序名删除软件
yum remove docker docker-common docker-selinux docker-engine
yum install -y wget

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i "/mirrors.aliyuncs.com/d"  /etc/yum.repos.d/CentOS-Base.repo
sed -i "/mirrors.cloud.aliyuncs.com/d"  /etc/yum.repos.d/CentOS-Base.repo

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all
yum makecache

# yum list docker-ce --showduplicates | sort -r

yum install -y docker-ce-18.09.3

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kfp63jaj.mirror.aliyuncs.com"]
}
EOF
systemctl enable docker   # 设置docker服务开机自启动
sudo systemctl restart docker

Ubuntu安装docker

# 用root用户安装
echo "deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs) main restricted universe multiverse" > /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ $(lsb_release -cs)-backports main restricted universe multiverse" >> /etc/apt/sources.list

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

mkdir -p /etc/docker
# https://docker.mirrors.ustc.edu.cn 是中国科学技术大学的docker仓库加速器,好像是实时代理的,但是时好时坏
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kfp63jaj.mirror.aliyuncs.com"]
}
EOF
systemctl enable docker #设置docker服务开机自启动
systemctl restart docker

# groupadd docker
# usermod -aG docker hgp
# 这步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker ps -a 执行时有错。或者重启系统让用户组信息生效
# newgrp - docker

4.安装docker-compose

# https://github.com/docker/compose/releases
# ALL_PROXY=socks5://127.0.0.1:1080 curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

docker启动一些镜像的命令

# postgre的docker启动命令,因为挂载了目录,必须确保宿主机的目录存在,否则抛错
docker run -itd --name postgresql --restart always -p 5432:5432 -e POSTGRES_USER=sde -e POSTGRES_PASSWORD=postgres postgres:11.8-alpine postgres -c max_connections=500
docker run -itd --name postgresql --restart always -v /opt/data/postgresql:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=sde -e POSTGRES_PASSWORD=postgres postgres:11.8-alpine postgres -c max_connections=500
docker run -itd --restart always -p 5432:5432 -v /cityworks/postgresql:/var/lib/postgresql/data --name postgres -e POSTGRES_USER=sde -e POSTGRES_PASSWORD=postgres postgres:11.8-alpine

# mongo的docker启动命令
docker run --name mongo --restart always -v /opt/data/mongo/data:/data/db -p 27017:27017 -d mongo:3.4.5

# minio的docker启动命令
docker run -it --restart always -p 9000:9000 --name minio -e MINIO_ACCESS_KEY=minio -e MINIO_SECRET_KEY=minio.minio minio/minio server /export

# redis的docker启动命令
docker run -itd --restart always --name redis -p 6379:6379 redis:4.0.9-alpine

# rebbitMQ的docker启动命令
docker run -itd --restart always --name rabbitmq -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:3.6.10-management-alpine

# gitbook的docker启动命令
docker run -itd --restart always --name gitbook -v /opt/soft/gitbook/soa:/gitbook -p 4000:4000 gitbook sh

# MySQL的docker启动命令
docker run -itd --restart always --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.3

### MySQL5.7设置时区
docker run -itd --restart always -e MYSQL_ROOT_PASSWORD=root -v /etc/localtime:/etc/localtime:ro -p 3306:3306 --name mysql mysql:5.7.16 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --default-time-zone='+8:00' --innodb-flush-log-at-trx-commit=0 --log-timestamps=SYSTEM --sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

docker run -itd --restart always -e MYSQL_ROOT_PASSWORD=root -v /etc/localtime:/etc/localtime:ro -p 3306:3306 --name mysql mysql:5.7.16 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --default-time-zone='+8:00' --log-timestamps=SYSTEM --sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

### MySQL8设置时区
docker run -itd --restart always -e MYSQL_ROOT_PASSWORD=root -v /etc/localtime:/etc/localtime:ro -p 3306:3306 --name mysql mysql:8.0.11 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --init-connect='SET NAMES utf8mb4;' --default-time-zone='+8:00' --log-timestamps=SYSTEM --sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' --default_authentication_plugin=mysql_native_password

# Swagger-ui启动命令
docker run --restart always --name swagger-ui -itd -p 80:8080 swaggerapi/swagger-editor:v3.5.3

docker-compose的服务部署步骤

# 把jar包放到docker-compose.yml脚本所在的目录的app文件夹后
# docker-compose关闭并移除所有服务的命令
docker-compose rm -fs
# docker-compose关闭具体服务的命令
docker-compose stop 服务名 # 服务名来自于docker-compose.yml脚本写的服务名
# docker-compose移除具体服务的命令
docker-compose rm 服务名   # 服务名来自于docker-compose.yml脚本写的服务名
# docker-compose启动所有服务
docker-compose up
# docker-compose启动具体的服务名
docker-compose up 服务名   # 服务名来自于docker-compose.yml脚本写的服务名
# docker查看服务的实时最后1000行日志,看看服务是否正常启动
docker logs -f --tail=1000 docker的实例名 # docker ps -a命令显示的实例名

如果要修改springboot的参数,在docker-compose脚本的environment环境变量部分配置就可以

version: '3'
services:

  persons:
    image: java:8-jre
    restart: always
    command: java -jar /app/service.jar
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    cap_add:
      - IPC_LOCK
    environment:
      - SPRING_APPLICATION_NAME=user-server
      - EUREKA_INSTANCE_IP-ADDRESS=192.168.100.86
      - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://192.168.100.86:7020/eureka/
      - SPRING_DATASOURCE_USERNAME=ascs
      - SPRING_DATASOURCE_PASSWORD=ascs.tech
      - SPRING_REDIS_HOST=192.168.100.86
      - TZ=Asia/Shanghai
    volumes:
      - ./app/aaaaa-2.0.jar:/app/service.jar
    ports:
      - 7016:7016

  dashboard:
    image: java:8-jre
    restart: always
    command: java -jar /app/service.jar
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    cap_add:
      - IPC_LOCK
    environment:
      - SPRING_APPLICATION_NAME=szsw-system-dashboard
      - SERVER_PORT=7009
      - EUREKA_INSTANCE_PREFER-IP-ADDRESS=true
      - EUREKA_INSTANCE_IP-ADDRESS=192.168.100.86
      - EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://192.168.100.86:7020/eureka/
    volumes:
      - ./app/bbbbb-2.3.jar:/app/service.jar
    ports:
      - 7009:7009

  postgres:
    image: postgres:11.8-alpine
    restart: always
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    cap_add:
      - IPC_LOCK
    environment:
      - POSTGRES_USER=centos
      - POSTGRES_PASSWORD=user123
    volumes:
      - /var/server/data/postgres:/var/lib/postgresql/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 5432:5432

软件包下载安装的路径

Centos7的阿里云docker安装包下载地址https://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7/Packages/
docker-compose的官方下载地址https://github.com/docker/compose/releases/
docker-compose的阿里云下载地址https://mirrors.aliyun.com/docker-toolbox/linux/compose/
docker-machine的官方下载地址https://github.com/docker/machine/releases/
docker-machine的阿里云下载地址https://mirrors.aliyun.com/docker-toolbox/linux/machine/