前提
注意,下面的镜像都创建了
network
,大家要创建自己的网络,或者删除掉我的network配置信息
portainer docker管理
version: '3'
volumes:
portainer_data:
services:
portainer:
networks:
default:
ipv4_address: 172.18.0.2
image: portainer/portainer
container_name: portainer
ports:
- "9000:9000"
command: -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/data
networks:
default:
external:
name: huzhihui
mysql5.7
前置准备 创建
conf
文件夹编辑my.conf
文件
-
utf8mb4_unicode_ci和utf8mb4_general_ci的对比:
-
准确性:
- utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
- utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。
- 但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
-
性能
- utf8mb4_general_ci在比较和排序的时候更快
- utf8mb4_unicode_ci在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
- 但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。
[mysqld]
user=mysql
default-storage-engine=INNODB
#character-set-server=utf8
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
max_connections=3000
[client]
#utf8mb4字符集可以存储emoji表情字符
#default-character-set=utf8
default-character-set=utf8mb4
[mysql]
#default-character-set=utf8
default-character-set=utf8mb4
docker-compose.yml
内容
version: '3'
services:
mysql:
image: mysql:5.7.16
networks:
default:
ipv4_address: 172.18.0.5
container_name: mysql5.7
volumes:
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "TZ=Asia/Shanghai"
ports:
- 3306:3306
networks:
default:
external:
name: huzhihui
mysql8
my.cof
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=2000
server-id=1
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=binlog
replicate-ignore-db=mysql,information_schema,performance_schema,sys
docker-compose.yml
version: '3'
services:
mysql:
image: mysql:8.0.31
networks:
- default
container_name: mysql8
volumes:
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "TZ=Asia/Shanghai"
ports:
- 3306:3306
networks:
default:
external:
name: huzhihui
mongodb
version: '3.1'
services:
mongo:
image: mongo:3.4.0
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
networks:
default:
ipv4_address: 172.18.0.3
container_name: mongo
ports:
- 27017:27017
volumes:
- ./data:/data
networks:
default:
external:
name: huzhihui
jenkins
version: '3'
services:
jenkins:
image: huzhihui/jenkins:1.0.0
networks:
default:
ipv4_address: 172.18.0.6
container_name: jenkins
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/localtime:/etc/localtime
- /usr/lib64/libltdl.so.7:/usr/lib64/libltdl.so.7
ports:
- "8080:8080"
environment:
- "TZ=Asia/Shanghai"
user: root
networks:
default:
external:
name: huzhihui
gitlab私服仓库
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
hostname: '192.168.137.200'
container_name: gitlab
networks:
- default
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.137.200'
ports:
- '80:80'
- '4443:443'
- '222:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
networks:
default:
external:
name: huzhihui
查看密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
gitea私服
额外注意配置邮件,查阅官方文档配置
version: "3"
services:
gitea:
image: gitea/gitea:1.14.5
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
default:
ipv4_address: 172.18.0.20
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3001:3000"
- "222:22"
networks:
default:
external:
name: huzhihui
redis
镜像
- 配置文件
redis.conf
bind 0.0.0.0
port 6379
timeout 0
requirepass huzhihui
docker-compose.yml
version: '3'
services:
redis:
image: redis:4
container_name: redis
environment:
TZ: Asia/Shanghai
networks:
- default
ports:
- 6379:6379
command: ["redis-server","/etc/redis/redis.conf"]
volumes:
- ./conf:/etc/redis/
- ./data:/data
networks:
default:
external:
name: huzhihui
nginx
前端镜像使用
配置文件
由于是直接使用
nginx
官方镜像,所以需要挂载配置文件和网站路径,默认挂载的配置文件路径conf.d
- 创建
conf.d
文件夹
mkdir -p conf.d
- 创建配置文件,可以是多个文件,我这里举例创建一个
default.conf
vim default.conf
server {
listen 8092;
location / {
add_header 'Access-Control-Allow-Origin' "*";
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
gzip_static on;
gzip on;
gzip_proxied any;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 5;
gzip_types text/plain text/css application/json application/javascript;
root /data;
}
location ~/(.*)\.gz$ {
proxy_pass http://127.0.0.1:8092/$1;
proxy_http_version 1.1;
}
}
- 如果想实现静态资源服务器可以浏览目录则可以用如下配置
autoindex on;
打开目录索引
server {
listen 8012;
location / {
root /data;
autoindex on;
}
}
docker-compose.yml
挂载了
3
个文件夹,如下配置
version: '3.1'
services:
nginx-welcome:
image: nginx:1.23
container_name: nginx-welcome
networks:
- default
environment:
- TZ=Asia/Shanghai
ports:
- 8092:8092
volumes:
- ./conf.d:/etc/nginx/conf.d
- ./logs:/var/log/nginx
- /alidata/nginx/nginx-welcome:/data
networks:
default:
external:
name: huzhihui
- 启动即可访问
http://127.0.0.1:8092
socks5
代理服务器的使用
禅道项目管理软件
version: '3'
services:
zentao:
image: easysoft/zentao:17.7
networks:
- default
container_name: zentao
volumes:
- ./data/zentaopms:/www/zentaopms
- ./data/mysql:/var/lib/mysql
environment:
- "MYSQL_ROOT_PASSWORD=root"
- "TZ=Asia/Shanghai"
ports:
- 8001:80
networks:
default:
external:
name: huzhihui
RabbitMq
常用镜像
version: '3'
services:
rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq
networks:
- default
environment:
- "TZ=Asia/Shanghai"
- "RABBITMQ_DEFAULT_USER=admin"
- "RABBITMQ_DEFAULT_PASS=admin"
volumes:
- "./data:/var/lib/rabbitmq"
ports:
- 5672:5672
- 15672:15672
- 1883:1883
- 15675:15675
networks:
default:
external:
name: huzhihui