前言:
眼前大家对“docker 22端口”可能比较关切,朋友们都想要剖析一些“docker 22端口”的相关文章。那么小编同时在网络上搜集了一些有关“docker 22端口””的相关文章,希望同学们能喜欢,朋友们一起来了解一下吧!前置准备工作:
关于docker、docker-compose的安装和使用在此略过。在宿主机上建立Gitea容器需要使用的账户,并将/data/gitea/data/目录的属主设置成Gitea;建立公共网络命名空间:
/usr/sbin/adduser gitea -G gitea/usr/bin/chown gitea:gitea /data/gitea/data/usr/bin/docker network create common
宿主机文件目录结构
docker网络结构及端口映射关系
caddy: front_net,commongitea: gitea_net,commongitea开放端口22、3000;caddy开放端口80、443;caddy reverse_proxy 到 gitea的3000
common是事先建立的共用docker网络:docker network create common,不会随着docker-compose的up和down而消失。建立common网络的目的有二:
一、Caddy2需要通过Gitea容器名称访问Gitea,二者必须处于共同的网络命名空间;
二、很多时候二者可能并不在同一个docker-compose的编排文件中,可能分别使用自己的编排文件启动。避免在启动时,由于引用了对方尚未建立的网络名称而出错。
Caddy2配置文件docker-compose.yml
version: "3"services: caddy: container_name: caddy image: docker.io/library/caddy:latest volumes: - /etc/localtime:/etc/localtime:ro - ./caddy:/etc/caddy # 这里把当前目录下的caddy目录挂载到caddy容器实例的/etc/caddy目录 ports: - "80:80" - "443:443" networks: - net - front # caddy容器与gitea共跨的外部网络networks: net: {} # 实际网络是front_net front: external: name: commonCaddy2配置文件Caddyfile
example.com { log { output file /etc/caddy/access.log } tls /etc/caddy/example.com.pem /etc/caddy/example.com.key route /git/* { # 注意完整路径前后带“/”,后面带* uri strip_prefix /git # 注意这里不带最后的“/” reverse_proxy gitea:3000 # 这里的3000,与app.ini中的HTTP_PORT一致 }}Gitea配置文件docker-compose.yml
ersion: "3"services: server: image: gitea/gitea:latest container_name: gitea environment: - USER_UID=1000 # 关于使用的UID和GID,参见Gitea文档。 - USER_GID=1000 restart: always networks: - net - front #外部网络,后面的部署中,需要与Caddy共同加入的同一网络命名空间 volumes: - ./data/:/data/ #gitea的文件将生成在该目录中 - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" # gitea的3000端口直接映射到公网 - "222:22"networks: net: {} # 不要被名称误导,这个net在 docker网络里实际会解释成gitea_net front: external: name: common # front对应的外部网络:commonGitea配置文件app.ini的server区段
[server]APP_DATA_PATH = /data/giteaDOMAIN = example.comSSH_DOMAIN = example.comHTTP_PORT = 3000 # 注意,不需要修改,容器仍然侦听自己的3000端口ROOT_URL = # 在这里填写“”,注意最后有反斜杠DISABLE_SSH = falseSSH_PORT = 22SSH_LISTEN_PORT = 22LFS_START_SERVER = trueLFS_JWT_SECRET = GM-EoJmU27V8sbTs8v-EPwXpA6xwwz5krICk4zeBtZcOFFLINE_MODE = false
标签: #docker 22端口