最近很多小伙伴都在问traefik结合docker-compose的快速安装及使用和docker安装trojan这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展62-docker-
最近很多小伙伴都在问traefik 结合 docker-compose 的快速安装及使用和docker安装trojan这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展62-docker-compose 结合 dockerfile 部署 springboot 应用、62-docker-compose 结合dockerfile 部署springboot应用、centos7+docker 安装和部署 crawlab 分布式爬虫平台,并使用 docker-compose 管理 docker、CentOS下Docker安装及Compose安装等相关知识,下面开始了哦!
本文目录一览:- traefik 结合 docker-compose 的快速安装及使用(docker安装trojan)
- 62-docker-compose 结合 dockerfile 部署 springboot 应用
- 62-docker-compose 结合dockerfile 部署springboot应用
- centos7+docker 安装和部署 crawlab 分布式爬虫平台,并使用 docker-compose 管理 docker
- CentOS下Docker安装及Compose安装
traefik 结合 docker-compose 的快速安装及使用(docker安装trojan)
traefik 介绍
traefik 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。
特性一览
- 它非常快
- 无需安装其他依赖,通过 Go 语言编写的单一可执行文件
- 支持 Rest API
- 多种后台支持:Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, 并且还会更多
- 后台监控, 可以监听后台变化进而自动化应用新的配置文件设置
- 配置文件热更新。无需重启进程
- 正常结束 http 连接
- 后端断路器
- 轮询,rebalancer 负载均衡
- Rest Metrics
- 支持最小化 官方 docker 镜像
- 后台支持 SSL
- 前台支持 SSL(包括 SNI)
- 清爽的 AngularJS 前端页面
- 支持 Websocket
- 支持 HTTP/2
- 网络错误重试
- 支持 Let’s Encrypt (自动更新 HTTPS 证书)
- 高可用集群模式
本文将分享 traefik 结合 docker-compose 的一点使用经验。
docker(docker-ce) 及 docker-compose(1.23.2) 的快速安装
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
sudo curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose 安装 traefik 及使用
用其搭配 docker-compose 部署网站,可轻松绑定域名,设置 https , 负载均衡,已在多个项目使用,文档可靠,强烈推荐!
以下为使用的基本操作
- 创建 network,使 traefik 及网站处于同一网络
- 创建 traefik.toml(官方文档)
- 创建 acme.json (
touch acme.json && chmod 600 ./acme.json
) - 创建 docker-compose.yml
docker-compose.yml
使用 docker-compose up -d
即可构建 traefik 服务, 根据 labels 标签通过监听其内部的 8090 端口,并绑定了域名 traefik.testdomain.com
docker-compose 可使用的 labes 配置见文档:http://docs.traefik.cn/toml#docker-backend traefik.toml 配置见文档:http://docs.traefik.cn/toml
使用之前需要先创建一个网络(docker network create me_gateway
),让 traefik 及所有网站都使用一个网络,这样就能够自动将域名绑定到对应的容器中
下面是一个 traefik 的 docker-compose.yml 配置
version: ''3''
services:
me_traefik:
restart: always
image: traefik:1.7.4
ports:
- ''80:80''
- ''443:443''
labels:
- ''traefik.backend=me_traefik''
- ''traefik.frontend.rule=Host:traefik.testdomain.com''
- ''traefik.enable=true''
- ''traefik.passHostHeader=true''
- ''traefik.protocol=https''
- ''traefik.port=8090''
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.toml:/traefik.toml
- ./acme.json:/acme.json
networks:
- webgateway
networks:
webgateway:
external:
name: me_gateway
volumes 说明
/var/run/docker.sock
:主机 docker./traefik.toml
:traefik 配置文件./acme.json
:Let''s Encrypt 配置,会根据 traefik.toml 生成,映射出来,后续重启数据将不会丢失,但是需要为其添加读写权限(chmod 600 acme.json),初始化时可以touch acme.json
生成一个空文件
下面是一个 traefik 的 traefik.toml 配置示例
################################################################
# Global configuration
################################################################
debug = false
logLevel = "ERROR"
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
# [entryPoints.http.redirect]
# entryPoint = "https"
# 启用https
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[entryPoints.webentry]
address = ":8090"
[entryPoints.webentry.auth]
[entryPoints.webentry.auth.basic]
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
[api]
dashboard = true
entrypoint = "webentry"
[ping]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "testdomain.com"
watch = true
exposedByDefault = false
usebindportip = true
swarmMode = false
network = "me_gateway"
[acme]
# 用于注册的邮箱地址
email = "wsyimo@qq.com"
# 证书存储使用的文件或键。
storage = "acme.json"
# 代理acme验证证书challenge/apply的入口点。
# 警告, 必需指向到一个443端口作为入口点
entryPoint = "https"
# 启用按需证书。如果这个主机名还没有证书,这将会在与一个主机名发起请求的第一个TLS握手中向Let''s Encrypt请求一个证书。
# 警告,第一次在请求中获取主机证书会导致TLS握手会非常慢,这会引起Dos攻击。
# 警告,值得注意的是Let''s Encrypt是有请求上限的:https://letsencrypt.org/docs/rate-limits
onDemand = false
# 启用根据前端Host规则来生成证书。这将会为每个具有Host规则的前端生成一个Let''s Encrypt的证书。
# 举个例子,一个具有规则的Host:test1.traefik.cn,test2.traefik.cn 将会为主域名test1.traefik.cn与SAN(替代域名) test2.traefik.cn生成一个证书。
onHostRule = true
[acme.httpChallenge]
entryPoint="http"
traefik 自动申请 https 证书(Let’s Encrypt)
文档地址:http://docs.traefik.cn/toml#acme-lets-encrypt-configuration
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
# [entryPoints.http.redirect]
# entryPoint = "https"
# 启用https
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[entryPoints.webentry]
address = ":8090"
traefik 自定义入口并配置账户密码
文档地址:http://docs.traefik.cn/toml#entrypoints-definition 但是,按照文档来,可能并不一定能够配置成功~,如果不成功就参考下面的配置吧,
defaultEntryPoints = ["http","https"]
[entryPoints]
[entryPoints.http]
address = ":80"
# [entryPoints.http.redirect]
# entryPoint = "https"
# 启用https
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[entryPoints.webentry]
address = ":8090"
[entryPoints.webentry.auth]
[entryPoints.webentry.auth.basic]
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
[api]
dashboard = true
entrypoint = "webentry"
- 在 api 节点指定 entrypoint= 入口点
- 配置 entryPoints 节点
[entryPoints]
[entryPoints.入口点]
address = ":8090"
[entryPoints.webentry.auth]
[entryPoints.webentry.auth.basic]
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
上诉密码需要使用 htpasswd 生成,可在服务器生成,也可使用新鲜出炉的 metools 的htpasswd 密码生成 在线生成了。
当 traefik 部署完成,后续网站绑定域名只需要在 docker-compose.yml 中指定 labels对应值即可自动绑定域名,申请 https 等操作了(指定到同一个网络),关于更多使用场景及方法,还是需要去查看文档 ,简单的可以参考我的配置,clone 后通过 docker-compose.yml 就可快速在服务器构建你的项目了
相关地址
- 完整使用示例:参考时需注意域名端口的绑定
- traefik 文档地址:http://docs.traefik.cn/
- traefik 仓库地址:https://github.com/containous/traefik
62-docker-compose 结合 dockerfile 部署 springboot 应用
dockerfile 内容:
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER lw
# 挂载目录
VOLUME /home/ybss
# 创建目录
RUN mkdir -p /home/ybss
# 指定路径
WORKDIR /home/ybss
ADD ./jar/lib /home/ybss/lib
ADD ./jar/*.yml /home/ybss/
# 复制jar文件到路径
COPY ./jar/run.jar /home/ybss/run.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","-Dserver.port=9200","-Dspring.profiles.active=dev","run.jar"]
docker-compose.yml 内容:
version : ''3.8''
services:
ybss-auth:
container_name: ybss-auth
build:
context: ./ybss/auth
dockerfile: dockerfile
ports:
- "19200:9200"
volumes:
- /home/ybss/ybss/auth/jar:/home/ybss
networks:
ybss_default:
driver: bridge
volumes 挂载目录 /home/ybss/ybss/auth/jar,有更新时,只需要把更新 jar 和文件替换即可。
部署脚本 shell:
#!/bin/sh
auth(){
chmod 777 -R ./ybss/auth/*
docker-compose up -d ybss-auth
}
stop(){
docker-compose stop
}
case "$1" in
"auth")
auth
;;
"s")
stop
;;
62-docker-compose 结合dockerfile 部署springboot应用
dockerfile内容:
# 基础镜像
FROM openjdk:8-jre
# author
MAINTAINER lw
# 挂载目录
VOLUME /home/ybss
# 创建目录
RUN mkdir -p /home/ybss
# 指定路径
WORKDIR /home/ybss
ADD ./jar/lib /home/ybss/lib
ADD ./jar/*.yml /home/ybss/
# 复制jar文件到路径
COPY ./jar/run.jar /home/ybss/run.jar
# 启动认证服务
ENTRYPOINT ["java","-jar","-Dserver.port=9200","-Dspring.profiles.active=dev","run.jar"]
docker-compose.yml 内容:
version : ''3.8''
services:
ybss-auth:
container_name: ybss-auth
build:
context: ./ybss/auth
dockerfile: dockerfile
ports:
- "19200:9200"
volumes:
- /home/ybss/ybss/auth/jar:/home/ybss
networks:
ybss_default:
driver: bridge
volumes挂载目录/home/ybss/ybss/auth/jar,有更新时,只需要把更新jar和文件替换即可。
部署脚本shell:
#!/bin/sh
auth(){
chmod 777 -R ./ybss/auth/*
docker-compose up -d ybss-auth
}
stop(){
docker-compose stop
}
case "$1" in
"auth")
auth
;;
"s")
stop
;;
centos7+docker 安装和部署 crawlab 分布式爬虫平台,并使用 docker-compose 管理 docker
1. 先决条件 centos7+docker 最新版本
sudo yum updat
2. 配置一下镜像源,创建 /etc/docker/daemon.conf 文件,在其中输入如下内容
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
3. 启动 docker 命令:
systemctl start docker
重启 docker 服务:
service docker restart
4. 查看和下载 Crawlab 的镜像命令 :
docker search crawlab #(查找Crawlab镜像)
docker pull tikazyq/crawlab:latest #(下载Crawlab镜像)
5. 创建 docker 组:
sudo groupadd docker (删除docker这个用户:userdel -r docker)
6.centos7 查看所有用户:
cut -d : -f 1 /etc/group
7. 将您的用户添加到该 docker 用户组,命令:
sudo usermod -aG docker 用户名
8. 查看 “docker” 组下的所有用户,命令:
grep ''docker'' /etc/group
9.Docker Compose 安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
稍等片刻,有点慢!!!!
赋权:
sudo chmod +x /usr/local/bin/docker-compose
查看版本:
docker-compose --version
10. 查找 docker-compose.yml 文件位置:
find / -name "docker-compose.yml*"
(会出现 find: ‘/run/user/1000/gvfs’: 权限不够,执行:umount /run/user/1000/gvfs 和 rm -rf /run/user/1000/gvfs, 再执行就不会出错了!!!
11. 图中:
/var/lib/docker/overlay2/50df4de9bf340501cade27650953ad983948b10e13bbe931710ef090ab1a4602/diff/app/docker-compose.yml-----------是我的路径
cd 到 app 目录就可以了
vim docker-compose.yml #编辑
注意: 新版镜像的 CRAWLAB_API_ADDRESS 是这样的: CRAWLAB_API_ADDRESS: "http://192.168.157.128:8000"
12. 启动 Crawlab
cd 进入到 docker-compose.yml 所在文件目录下
才能运行:docker-compose up
集群启动容器,否则找不到文件
查看 woker 容器日志命令:docker-compose logs worker
正常会启动四个容器:master、woker、redis、mongo
第一次次启动会下载安装并配置节点和数据库(redis 和 mongodb)
13.Crawlab
浏览器访问 :http://ip:8080 用户名密码是 admin/admin
第一次访问没问题,但是第二次启动会报各种错,博主正在研究中 ----- 持续更新中!!!
CentOS下Docker安装及Compose安装
Docker 支持以下的 64 位 CentOS 版本:
- CentOS 7
- CentOS 8
- 更高版本…
一、使用官方安装脚本自动安装Docker
安装命令如下:
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
也可以使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
二、手动安装Docker
1. 卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
#1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2. 安装所需的软件包
安装 yum-utils
软件包(提供了 yum-config-manager
)
yum install -y yum-utils
3. 设置镜像的仓库
#默认是从国外的,不推荐
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 更新yum软件包索引
yum makecache fast
5. 安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者安装特定版本(docker-ce 社区版,而ee是企业版)
yum install docker-ce docker-ce-cli containerd.io
6. 配置阿里云镜像加速(可选)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://4bj04jx5.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
7. 启动Docker
systemctl start docker
8. 使用docker version查看是否按照成功
docker version
9. 开机自启
systemctl enable docker
三、Docker Compose安装
官网指导地址:https://docs.docker.com/compose/install/
1. 下载
# 下载,这个网络十分慢,有可能失败
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Docker Compose 存放在Git Hub,不太稳定。你可以也通过执行下面的命令,高速安装Docker Compose。
# 分享一个国内的网站:http://get.daocloud.io/#install-compose
# 用下面的命令来下载:
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
要安装其他版本的 Compose,请替换 1.27.0。结果如下:
[root@muzi conf]# sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 423 100 423 0 0 169 0 0:00:02 0:00:02 --:--:-- 169
100 11.6M 100 11.6M 0 0 3872k 0 0:00:03 0:00:03 --:--:-- 38.5M
[root@muzi local]# cd /usr/local/bin
[root@muzi bin]# ls
docker-compose
2. 授权
sudo chmod +x /usr/local/bin/docker-compose
3. 验证是否安装成功
[root@muzi bin]# docker-compose version
docker-compose version 1.27.0, build 980ec85b
docker-py version: 4.3.1
cpython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
4. 创建软链(可选)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
我们今天的关于traefik 结合 docker-compose 的快速安装及使用和docker安装trojan的分享已经告一段落,感谢您的关注,如果您想了解更多关于62-docker-compose 结合 dockerfile 部署 springboot 应用、62-docker-compose 结合dockerfile 部署springboot应用、centos7+docker 安装和部署 crawlab 分布式爬虫平台,并使用 docker-compose 管理 docker、CentOS下Docker安装及Compose安装的相关信息,请在本站查询。
本文标签: