# 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
# 用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
# 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
# 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
# 把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命令显示的实例名
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/