清除所有容器
docker rm -f `docker ps -a -q`
Dockers 安装
# 安装 Centos上安装docker
$ sudo yum install docker
# 启动
systemctl start docker
# 查看版本
docker version
# 加速器
vi /etc/docker/daemon.json
"registry-mirrors":["https://cr.console.aliyun.com"]
"registry-mirrors":["https://mj9kvemk.mirror.aliyuncs.com"]
systemctl daemon-reload
systemctl restart docker
设置开机启动
systemctl enable docker.service
关闭开机启动
systemctl disable docker.service
Docker-compose 安装
安装 & 卸载
# 下载镜像
$ sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 加权限
$ sudo chmod +x /usr/local/bin/docker-compose
# 验证是否成功安装
$ docker-compose version
常用命令
# 清除
docker-compose down
# 运行
docker-compose up -d
Github
gitlab:
image: twang2218/gitlab-ce-zh
container_name: gitlab
restart: always
privileged: true
hostname: '192.168.0.109'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "http://192.168.0.109"
gitlab_rails['gitlab_shell_ssh_port'] = 2222
nginx['listen_port'] = 9090
ports:
- '9090:9090'
- '2222:22'
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
mysql
mysqlname:
restart: always
image: mysql:5.7.22
container_name: mysql
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- ./data:/var/lib/mysql
固定IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.95.128
NETMASK=255.255.255.0
GATEWAY=192.168.95.2
#DNS文件配置
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
然后重启网络:service network restart
Skywalker -docker-compose.yml
version: '3.3'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.4.3
container_name: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
environment:
discovery.type: single-node
ulimits:
memlock:
soft: -1
hard: -1
oap:
image: skywalking/oap
container_name: oap
depends_on:
- elasticsearch
links:
- elasticsearch
restart: always
ports:
- 11800:11800
- 12800:12800
environment:
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
ui:
image: skywalking/ui
container_name: ui
depends_on:
- oap
links:
- oap
restart: always
ports:
- 8080:8080
environment:
SW_OAP_ADDRESS: oap:12800
Nginx
负载均衡+静态资源+域名映射
version: '3.1'
services:
nginx:
restart: always
image: nginx
container_name: nginx
ports:
- 80:80
- 8080:8080
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./html:/usr/share/nginx/html
tomcat1:
image: tomcat
container_name: tomcat1
volumes:
- ../tomcat1:/usr/local/tomcat/webapps
tomcat2:
image: tomcat
container_name: tomcat2
volumes:
- ../tomcat2:/usr/local/tomcat/webapps
目录结构
nginx.conf
文件要提前创建要不然启动的时候会认为是目录
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_header_buffer_size 2k;
# 反向代理
upstream tomcatServer1 {
# 负载均衡
server tomcat1:8080;
server tomcat2:8080;
}
server {
listen 80;
# 域名映射
server_name service1.funtl.com;
location / {
proxy_pass http://tomcatServer1;
index index.html index.htm;
}
}
# 静态资源
server {
listen 80;
server_name service2.funtl.com;
location / {
root /usr/share/nginx/html/html81;
index index.html index.htm;
}
}
}
Tomcat
version: '3.1'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- /usr/local/docker/web/:/usr/local/tomcat/webapps
# 时间同步
environment:
TZ: Asia/Shanghai
mysql
mysqlname:
restart: always
image: mysql:5.7.22
container_name: mysqlname
ports:
- 3306:3306
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 123456
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
volumes:
- mysql-data:/var/lib/mysql
运行jar
gateway2:
restart: always
image: ascdc/jdk8
container_name: gateway2
ports:
- 9000:9000
volumes:
- /mnt/docker/web/gateway/service-gateway-1.0.0-SNAPSHOT.jar:/data/service-gateway-1.0.0-SNAPSHOT.jar
entrypoint: java -jar /data/service-gateway-1.0.0-SNAPSHOT.jar