咕噜猫小站

do it, do it right, do it right now

0%

docker 部署 oracle 19c

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21

version: "3.7"

services:
  oracle:
    image: 'registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c'
    restart: always
    ports:
      - '1521:1521'
      - '5500:5500'
    environment:
      - ORACLE_SID=ORCLCDB
      - ORACLE_PDB=ORCLPDB1
      - ORACLE_PWD=123456
      - ORACLE_EDITION=standard
      - ORACLE_CHARACTERSET=AL32UTF8
    volumes:
      - db_data:/opt/oracle/oradata

volumes:
  db_data:
1
2
3
4
5
6
初次运行时安装的时间比较久,需要耐心等待。

登录设置:
  - SID: ORCLCDB 或者 Service Name: ORCLCDB 或者 Service Name: ORCLPDB1
  - 用户名密码: sys/123456(SYSDBA) 或者 system/123456(Normal)
  - 默认表空间为: SYSTEM

docker 部署 microsoft sql server

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
version: "3.7"

services:
  sqlserver:
    image: 'mcr.microsoft.com/mssql/server:2019-latest'
    restart: always
    ports:
      - '1433:1433'
    environment:
      # default user name: sa
      - SA_PASSWORD=Password
      - ACCEPT_EULA=y
    #volumes:

1 创建数据库注意事项

由于 docker 版 SqlServer 没有管理端,创建数据库一般是通过数据库客户端(如 Navicat, DBeaver )来进行操作,此时如果没有指定数据库字符集,很有可能会产生中文乱码。

docker 部署 openldap

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
version: '3.7'

services:
  ldap:
    # openldap 服务器
    image: osixia/openldap:latest
    restart: always
    volumes:
      - ldap_config:/etc/ldap/slapd.d
      - ldap_data:/var/lib/ldap
      # - ldap_certs:/container/service/slapd/assets/certs
    ports:
      # port 636 for TLS
      - "389:389"
      # - "636:636"
    environment:
      - TZ=Asia/Shanghai
      - LDAP_DOMAIN=example.org
      - LDAP_ORGANISATION=Example Inc.
      - LDAP_ADMIN_PASSWORD=admin
      - LDAP_CONFIG_PASSWORD=config
      - LDAP_READONLY_USER=true
      - LDAP_READONLY_USER_USERNAME=readonly
      - LDAP_READONLY_USER_PASSWORD=readonly
      - LDAP_TLS=false
      # - LDAP_TLS_CRT_FILENAME=ldap.crt
      # - LDAP_TLS_KEY_FILENAME=ldap.key
      # - LDAP_TLS_DH_PARAM_FILENAME=dhparam.pem
      # - LDAP_TLS_CA_CRT_FILENAME=ca.crt

#  lam:
#    # 账号管理(管理员使用)
#    image: ldapaccountmanager/lam:latest
#    # restart: always
#    ports:
#      - "8100:80"
#    environment:
#      - TZ=Asia/Shanghai

  ldapadmin:
    # 另一个账号管理的工具
    image: osixia/phpldapadmin:latest
    # restart: always
    ports:
      - "8443:443"
    environment:
      - TZ=Asia/Shanghai
      - PHPLDAPADMIN_LDAP_HOSTS=ldap
    volumes:
      - ldapadmin_data:/var/www/phpldapadmin

  ssp:
    # 自助密码服务(普通用户使用)
    image: tiredofit/self-service-password:latest
    restart: always
    ports:
      - "8200:80"
    environment:
      - TZ=Asia/Shanghai
      - LDAP_SERVER=ldap://ldap
      - LDAP_STARTTLS=false
      - LDAP_BINDDN=cn=admin,dc=example,dc=org
      - LDAP_BINDPASS=admin
      - LDAP_BASE_SEARCH=dc=example,dc=org
      - LDAP_LOGIN_ATTRIBUTE=uid
      - LDAP_FULLNAME_ATTRIBUTE=cn

volumes:
  ldap_config:
  ldap_data:
  #ldap_certs:
  ldapadmin_data:

1. 服务可用性验证

管理员使用 ldapsearch 验证(需要安装 ldap-utils 包)

docker 部署 consul

单节点

docker-compose.yml 示例:

1
2
3
4
5
6
7
8
9
version: '3.7'

services:
  consul:
    image: consul
    # restart: always
    ports:
      - "8500:8500"
    command: "agent -server -client 0.0.0.0 -bootstrap -node consul1 -ui -bind 0.0.0.0"

多节点

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
version: '3.7'

services:
  consul1:
    image: consul
    # restart: always
    ports:
      - "8500:8500"
    command: "agent -server -client 0.0.0.0 -bootstrap-expect 3 -node consul1 -ui -bind 0.0.0.0"

  consul2:
    image: consul
    # restart: always
    command: "agent -server -client 0.0.0.0 -retry-join=consul1 -node consul2 -bind 0.0.0.0"

  consul3:
    image: consul
    # restart: always
    command: "agent -server -client 0.0.0.0 -retry-join=consul1 -node consul3 -bind 0.0.0.0"

docker 部署 etcd

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
version: "3.7"

services:
  etcd:
    image: bitnami/etcd:latest
    # restart: always
    ports:
      - "2379:2379"
      - "2380:2380"
    environment:
      - ALLOW_NONE_AUTHENTICATION=yes
      - ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379
      - TZ=Asia/Shanghai

#  etcdkeeper:
#    image: evildecay/etcdkeeper
#    ports:
#      - "8080:8080"

docker 部署 clickhouse server

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
version: "3.7"

services:
  clickhouse-server:
    # 默认用户名: default ,密码通过配置文件来设置。
    image: yandex/clickhouse-server:latest
    # restart: always
    ports:
      - "8123:8123"
      - "9000:9000"
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    # 时区的环境变量在该镜像中无效。
    #environment:
    #  TZ: "Asia/Shanghai"
    volumes:
      - db_data:/var/lib/clickhouse
      # 用户自定义配置
      - ./users.d:/etc/clickhouse-server/users.d:ro
      # 初始脚本
      - ./initdb.d:/docker-entrypoint-initdb.d:ro

volumes:
  db_data:

创建一个 users.d 目录,存放用户自定义配置,示例为配置默认用户的登录密码: default-password.xml

docker 部署 RabbitMQ

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

version: "3.7"

services:
  rabbitmq:
    image: rabbitmq:alpine
    restart: always
    environment:
      # default username/password: guest / guest
      RABBITMQ_DEFAULT_USER: "rabbitmq"
      RABBITMQ_DEFAULT_PASS: "123456"
      # RABBITMQ_DEFAULT_VHOST: "RabbitMq"
    ports:
      # 5672 client端通信端口
      # 15672 管理界面ui端口。管理插件默认关闭,如要打开,则需要进入容器内运行 rabbitmq-plugins enable rabbitmq_management
      # 管理端也可以单独启动 rabbitmq:management-alpine 镜像
      - "5672:5672"
      - "15672:15672"
      # 1883 mqtt通信端口。mqtt插件默认关闭,如要打开,则需要进入容器内运行 rabbitmq-plugins enable rabbitmq_mqtt
      - "1883:1883"
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq

volumes:
  rabbitmq_data:

docker 部署 redis

docker-compose.yml 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
version: '3.7'

services:
  redis:
    image: redis:alpine
    restart: always
    ports:
      - "6379:6379"
    environment:
      TZ: "Asia/Shanghai"
    volumes:
      - redis_data:/data

volumes:
  redis_data:

docker 部署 registry

官网: https://docs.docker.com/registry/

https://docs.docker.com/registry/deploying/

docker 私有仓库,官方出品。

运行方式:

1
2
3
4
5
6
docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /mnt/registry:/var/lib/registry \
  registry

提交到私有仓库示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 从Docker Hub官网拉取镜像。
$ docker pull ubuntu:16.04

# 重新打标签,记得加上私有仓库ip和端口。具体含义见 docker 镜像命名方式。
$ docker tag ubuntu:16.04 localhost:5000/my-ubuntu

# 提交镜像到私有仓库。
$ docker push localhost:5000/my-ubuntu

# 本机可以删除掉缓存的原标签。
$ docker image remove ubuntu:16.04

# 后续拉取镜像可从私有仓库拉取。
$ docker pull localhost:5000/my-ubuntu