GVKun编程网logo

traefik 结合 docker-compose 的快速安装及使用(docker安装trojan)

11

最近很多小伙伴都在问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)

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 , 负载均衡,已在多个项目使用,文档可靠,强烈推荐!

以下为使用的基本操作

  1. 创建 network,使 traefik 及网站处于同一网络
  2. 创建 traefik.toml(官方文档)
  3. 创建 acme.json (touch acme.json && chmod 600 ./acme.json)
  4. 创建 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"
  1. 在 api 节点指定 entrypoint= 入口点
  2. 配置 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 应用

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应用

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

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/gvfsrm -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)

img

13.Crawlab

浏览器访问 :http://ip:8080 用户名密码是 admin/admin

第一次访问没问题,但是第二次启动会报各种错,博主正在研究中 ----- 持续更新中!!!

CentOS下Docker安装及Compose安装

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安装的相关信息,请在本站查询。

本文标签: