学习中...持续更新
- docker-compose安装:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname \
-s`-`uname -m` -o /usr/local/bin/docker-compose
最新版本号可以通过 官方 GitHub Release 上来获取二进制文件。
chmod +x /usr/local/bin/docker-compose
添加可执行权限
- MySQL5.7.22:
docker run --restart=always -d \
-p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.22
- MySQL8.0.22:
docker run --restart=always -d \
-p 3307:3306 --name mysql \
-v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /usr/local/docker/mysql/logs:/logs \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 mysql
my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html [mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL # Custom config should go here
!includedir /etc/mysql/conf.d/
- Tomcat
docker run -d --name tomcat -p 8080:8080 \
-v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT \
tomcat
- nginx
docker run -d -p 80:80 --name nginx \
-v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker/nginx/html:/usr/share/nginx/html \
nginx
- nexus3
授予文件夹读写权限
chmod 777 /usr/local/docker/nexus3/data
docker run -tid -p 8081:8081 --name nexus3 -e NEXUS_CONTEXT=nexus \
-v /usr/local/docker/nexus:/nexus-data docker.io/sonatype/nexus3
docker-compose.yml
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/data:/nexus-data
非流通包.jar文件上传nexus release
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=D:\ojdbc14-10.2.0.4.0.jar -Durl=http://192.168.126.129:8081/repository/maven-releases/ -DrepositoryId=nexus-releases
这里用oracle ojdb来演示
-DgroupId=com.oracle #项目路径
-DartifactId=ojdbc14 #项目名
-Dversion=10.2.0.4.0 #版本号
-Dpackaging=jar #文件类型
-Dfile=D:\ojdbc14-10.2.0.4.0.jar #文件路径
-Durl=http://192.168.126.129:8081/repository/maven-releases/ #文件上传私服路径
-DrepositoryId=nexus-releases #私服id
- registry 和 registry-ui
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
registry-ui:
restart: always
image: konradkleine/docker-registry-frontend:v2
container_name: registry-ui
environment:
ENV_DOCKER_REGISTRY_HOST: 192.168.126.128
ENV_DOCKER_REGISTRY_PORT: 5000
ports:
- 5001:80
volumes:
- /usr/local/docker/registry-ui/server.crt:/etc/apache2/server.crt:ro
- /usr/local/docker/registry-ui/server.key:/etc/apache2/server.key:ro
- Redis sentinel 集群部署
搭建一主两从环境,docker-compose.yml
version: '3.1'
services:
master:
image: redis
container_name: redis-master
ports:
- 6379:6379 slave1:
image: redis
container_name: redis-slave-1
ports:
- 6380:6379
command: redis-server --slaveof redis-master 6379 slave2:
image: redis
container_name: redis-slave-2
ports:
- 6381:6379
command: redis-server --slaveof redis-master 6379
至少需要创建三个 Sentinel 服务,docker-compose.yml
version: '3.1'
services:
sentinel1:
image: redis
container_name: redis-sentinel-1
ports:
- 26379:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf sentinel2:
image: redis
container_name: redis-sentinel-2
ports:
- 26380:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf sentinel3:
image: redis
container_name: redis-sentinel-3
ports:
- 26381:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
sentinel1.conf
,sentinel2.conf
,sentinel3.conf配置文件,内容一致
port 26379
dir /tmp
# 自定义集群名,其中 127.0.0.1 为 redis-master 的 ip,6379 为 redis-master 的端口,2 为最小投票数(因为有 3 台 Sentinel 所以可以设置成 2)
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
- rabbitMQ
version: '3.1'
services:
rabbitmq:
restart: always
image: rabbitmq:management
container_name: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: rabbit
RABBITMQ_DEFAULT_PASS: 123456
volumes:
- /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq