Moby: docker swarm рдореЛрдб: 127.0.0.1 рдкрд░ рдкреЛрд░реНрдЯ 0.0.0.0 рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  53рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: moby/moby

рд╡рд┐рд╡рд░рдг

Docker swarm рдореЛрдб рдореЗрдВ, рдкреЛрд░реНрдЯ рдХреЛ 127.0.0.1 рдкрд░ рдмрд╛рдБрдзрдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреЛрд░реНрдЯ 0.0.0.0 рдкрд░ рднреА рдЦреБрд▓рд╛ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ рд╕реБрд░рдХреНрд╖рд╛ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:

  1. рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП MongoDB, рдЕрдкрдиреЗ docker-compose.swarm.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдФрд░ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ 27017 рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ:
  mongodb:
    image: mongo:3.2
    volumes:
      - ./persistent-data/mongodb:/data
      - ./persistent-data/mongodb/db:/data/db
    networks:
      data:
        aliases:
          - mongo.docker
    logging:
      driver: syslog
      options:
        syslog-address: "udp://10.129.26.80:5514"
        tag: "docker[mongodb]"
    ports:
      - "127.0.0.1:27017:27017"
    deploy:
      placement:
        constraints: [node.labels.purpose == main-data]
  1. рдЕрдкрдиреЗ рдЭреБрдВрдб рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ
  2. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдкреЛрд░реНрдЯ рдЖрдкрдХреЗ рдЭреБрдВрдб рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдиреЗрдЯрдХрдЯ рдХреЗ рд╕рд╛рде рдЦреБрд▓рд╛ рд╣реИ

рдЖрдкрдХреЛ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:

nc -vz PUBLIC_NODE_IP 27017
found 0 associations
found 1 connections:
[...]
Connection to PUBLIC_NODE_IP port 27017 [tcp/*] succeeded!

рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдмрддрд╛рдПрдВ:
рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ 127.0.0.1 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЭреБрдВрдб рдиреЛрдбреНрд╕ рдореЗрдВред

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕реЗ рдЖрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордЭрддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХрднреА-рдХрднреА рд╣реА рд╣реЛрддреА рд╣реИ):

docker version рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

Docker version 17.03.1-ce, build c6d412e

docker info рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ:

рдЭреБрдВрдб рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП docker рдЬрд╛рдирдХрд╛рд░реА:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 17.03.1-ce
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 3
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: active
 NodeID: pk7ulemi0z0chgtsg0azfrjz5
 Is Manager: true
 ClusterID: 27etomlyjvtmygrm6rcdgr2ni
 Managers: 1
 Nodes: 6
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 3
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
 Node Address: 10.129.26.165
 Manager Addresses:
  10.129.26.165:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc
runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-64-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.4 MiB
Name: <HIDDEN>
ID: IMOK:QIR7:WU5Y:WTPP:EPRQ:F77G:ULGE:WOG4:O7S7:6AFE:V7QG:2XEK
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: <HIDDEN>
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реНрдпрд╛рд╡рд░рдг рд╡рд┐рд╡рд░рдг (AWS, VirtualBox, рдЖрджрд┐):
рдбрд┐рдЬрд┐рдЯрд▓ рдорд╣рд╛рд╕рд╛рдЧрд░ рдХреА рдмреВрдВрджреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░рд╛рд╢ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рдХреБрдЫ рдбреЙрдХрдЯрд░ рджреЗрд╡рддрд╛ рдПрдХ рд╡реИрдз рдФрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдЭреБрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдкрд░рд┐рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрд╛рдВрдзрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ SSH рд╕реБрд░рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рд╕рднреА 53 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рд╕реЗрд╡рд╛рдПрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) "рдЗрдВрдЧреНрд░реЗрд╕" рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ", рдФрд░ рдЖрдИрдкреА-рдкрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ _node_ рд╡реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдИрдкреА-рдкрддреЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ - рд╣рд╛рд▓рд╛рдВрдХрд┐ 127.0 .0.1 рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд░рд╣реА рд╣реИ рдЬреЛ https://github.com/docker/docker/issues/26696 (рдФрд░ рдпрд╣ "рдорд╣рд╛рдХрд╛рд╡реНрдп" рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рд╕реЗрд╡рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ https://github.com/docker/docker/issues / 25303)

рдпрд╣рд╛рдБ рдмрдЧ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрдЯрд░ рдХреЛ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП; рдЗрд╕ рдиреНрдпреВрдирддрдо рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп;

version: "3.2"
services:
  mongodb:
    image: nginx:alpine
    ports:
      - "127.0.0.1:27017:80"

ping @dnephin @vdemeester

@ fer2d2 рдЭреБрдВрдб рдореЛрдб рдкрд░, рдпрджрд┐ рдЖрдк рдХреБрдЫ ( ports stack deploy ) рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ ingress рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИред рдЖрд╕-рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди kind/bug рдХреЛ рдЙрд╕ рдкрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд╕рд╛рде stack deploy рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдВрдХреЗрддрди рд╣реИ (рдЕрд░реНрдерд╛рдд host:port:port )ред

рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ mongo рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рддрднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛ , рдЕрдиреНрдпрдерд╛, рдпрд╣ docker рдореЗрдВ рдирд╛рдо рдбрд┐рд╕реНрдХрд╡рд░реА рдмрдВрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдЙрд╕реА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░ / рд╕реЗрд╡рд╛ mongo рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧреА
  • рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╣реЛрд╕реНрдЯ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ ingress рдирд╣реАрдВ (рддреЛ рдЭреБрдВрдб рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд╣реЛрд╕реНрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐ рдЭреБрдВрдб рдореЛрдб рдХреЗ рдмрд┐рдирд╛), рдЖрдкрдХреЛ рдкреЛрд░реНрдЯ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
    ports:
      - mode: host
        target: 80
        published: 9005

рдпрд╣ docker run -p 80:9005 тАж рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ 0.0.0.0 рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЛрд╕реНрдЯ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ @thaJeztah рдиреЗ рдХрд╣рд╛, "рдпрд╣рд╛рдБ рдмрдЧ рдпрд╣ рд╣реИ рдХрд┐ рдбреЙрдХрдЯрд░ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рдмрдЬрд╛рдп рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП"

/ cc @mavenugo @aboch рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдмрд╛рдБрдзрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛? (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдиреЛрдб рдХрд╛ рдЖрдИрдкреА рдЕрд▓рдЧ рд╣реЛрдЧрд╛ ..)

@vdemeester рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реНрдерд╛рдиреАрдп рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

    ports:
      - mode: host
        target: 127.0.0.1:80
        published: 9005

рдЪреВрдВрдХрд┐ рдпрд╣ рдкреЛрд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдкреНрд░рд╛рд░реВрдк

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рджреЛрдиреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдк SSH рд╕реБрд░рдВрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 127.0.0.1 рдкрд░ рдЕрдкрдирд╛ MySQL рдпрд╛ MongoDB рд╕рд░реНрд╡рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ SSH рдЯрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдбреЙрдХрд░ рдЭреБрдВрдб рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреЛрд░реНрдЯ рдХреЛ 0.0.0.0 рдкрд░ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ SSH рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ (рдФрд░ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк) рдмрд╣реБрдд рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ)ред

SSH рд╕реБрд░рдВрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИрдВ, рдЬреИрд╕реЗ SQL рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдпрд╛ Robomongo рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рд╕реАрдорд╛ (рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ) рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ @ fer2d2 рдХреЗ рд╕рдорд╛рди рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ,

рдХреЛрдИ рдЦрдмрд░?

+1

+1

IP_ рдкрддреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛

рдЬрдм рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

placement:
        constraints:
          - node.id ==

рдЪрд┐рдпрд░реНрд╕

+1

+1

+1

рдЕрдкрдиреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛:

iptables -I DOCKER-USER -i eth0 -j DROP
iptables -I DOCKER-USER -m state --state RELATED,ESTABLISHED -j ACCEPT

рдХрд░реНрддрд╛ рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреВрддрд╛ рд╣реИред рдмрд╕ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
-A DOCKER-USER -j RETURN
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреЛрд░реНрдЯ 0.0.0.0 рдкрд░ рд╕реБрдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ eth0 рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ

рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рд╣реИ, рдФрд░ рдбреЙрдХреНрд╕ рдореЗрдВ рдиреЛрдЯ рдбрд╛рд▓рдирд╛ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдореЛрдб рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ: рдЗрдВрдЧреНрд░реЗрд╕ / рд╣реЛрд╕реНрдЯ (рдпреЗ рджреЛ рдореБрджреНрджреЗ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдЙрд▓рдЭреЗ рд╣реБрдП рд▓рдЧрддреЗ рд╣реИрдВ)ред рдЗрдВрдЧреНрд░реЗрд╕ рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ рд╕реНрдерд╛рдиреАрдп рдкрддреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реЗрд╡рд╛ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдкрддреЗ рдкрд░ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП 127.xxx рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред (рдЧреИрд░-рдЭреБрдВрдб рдореЛрдб рдореЗрдВ (docker run рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдореИрдВ 127.0.0.2:80 рдФрд░ 127.0.0.3:80 рдЖрджрд┐ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реВрдВред)

рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рд╡реЗрд╢ рдореЛрдб рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред рдпрд╣ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реИ, рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рднреА рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдПрдХ рдирд┐рдЬреА рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдПрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдПрдХ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬрд┐рд╕рдХрд╛ рдкреЛрд░реНрдЯ 127.0.0.3:80 рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдерд╛ред рдпрд╣ рддрдм рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреЛрдб рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдерд╛ред (рд╡рд╣ рдЪреБрдкрдЪрд╛рдк рдЖрдИрдкреА-рдкрддреЗ рдХреА рдЕрдирджреЗрдЦреА рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЪреБрдкрдЪрд╛рдк рдЗрдВрдЧреНрд░реЗрд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдбреЗрдЯрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ)ред

рдмрдХреНрд╕реЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ

  • рдЙрди рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ)

    • 1 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдХреЗ рдкреЛрд░реНрдЯ рд╕реЗ рдмрд╛рдВрдзреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреЛрд░реНрдЯ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рд╣реИред

    • 2 рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдХреЗ рдкреЛрд░реНрдЯ рд╕реЗ рдмрд╛рдВрдзреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рд╣реИ ред

    • 3 рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрд╛рдБрдзреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рд╣реИ

    • 4 рдмрд╛рдЗрдВрдб 127.0.0.3, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреА рд╡рд┐рдХрд╛рд╕ рдорд╢реАрди рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╕рд╛рдорд╛рди рд╣реИ, рдФрд░ 127.0.0.1 рдЗрд╕ рдкреЛрд░реНрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИред рдФрд░ /etc/hosts , рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЛрдореЗрди-рдирд╛рдо рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПред рдпрд╣ docker run рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред

  • рдЕрдиреНрдп usecases

    • рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреИрд╕реЗ 192.168.0.x рдкрд░ рдмрд╛рдЗрдВрдб рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рд╣реИ

    • рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рд╕реЗ рдмрд╛рдВрдзреЗрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдиреЛрдб рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЛ рдмрд╛рдзреНрдп рди рдХрд░реЗрдВред рдпрд╣ 1 рдпрд╛ 2 рдХреЗ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рдеред рдпрд╛рддрд╛рдпрд╛рдд рдЭреБрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рддреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ

  • IP рдкрддреЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдФрд░ 0.0.0.0, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдВрдЧреНрд░реЗрд╕ рдореЛрдб рд╕реЗ рдмрд╛рдЗрдВрдб рдХрд░рдирд╛, рджреЛрдиреЛрдВ рд╣реА "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдореЗрдВ рд╣реИрдВред рдпрджрд┐ IP- рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдбреЙрдХреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ рддреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЬрд╛рд░реА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдореЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ (рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ), рдФрд░ рдбреЙрдХреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдЬрд╛рд░реА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред (рдпрд╣ рдореЛрдб рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред)
  • рддрдм рд╣реЛрд╕реНрдЯ рдореЛрдб рдореЗрдВ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдЗрдВрдЧреНрд░реЗрд╕ рдореЛрдб рдореЗрдВ IP рдкрддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдкрддреЗ 127.xxx рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред (рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреАрдп рдкрддреЗ рдЬреИрд╕реЗ 127.0.0.2 рдФрд░ 127.0.0.3 рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдмрд╕ рдУрдПрд╕ рдкрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛))ред

рд╕реНрдерд╛рдиреАрдп рдкрддреЗ рдкрд░ рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреА рдмрд╛рдзреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдкрд░ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рд╡рд┐рд╡рд╢ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдпрд╛ рдЭреБрдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдПрдХ рдкрддреЗ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдкреНрд░рд╡реЗрд╢ рдореЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣ рд░реВрдЯрд┐рдВрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреА рдЬрд╛рддреА рд╣реИ

@ richard-delorenzi Moby рдПрдХ рд╣реЛрд╕реНрдЯ рдЖрдИрдкреА рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд╣рд░, рдпрд╣ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЗ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ ... рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдбреЙрдХ рд╕реАрдПрд▓рдЖрдИ рдореЗрдВ рдпрдорд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реАрдПрд▓рдЖрдИ рдкрд░ рдЦрд░рд╛рдм рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

+1

+1

+1

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ 'рдХреЛрд░' рдирд╛рдордХ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдорд╛рд░реА рд╕рднреА рдмреИрдХ-рдПрдВрдб рд╕реЗрд╡рд╛рдУрдВ (рдореЛрдВрдЧреЛ, рдПрд▓реЗрд╕реНрдЯреАрд╕рд░реНрдЪ, рдЗрдирдлреНрд▓рдХреНрд╕рдмрд░реНрдб рдЖрджрд┐) рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдЭреБрдВрдб рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдмрд╕ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХрдВрдЯреЗрдирд░ рдХреЛ рдРрд╕реЗ рд╣реА рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ:

docker run --name kibana --rm -d -v /var/lib/kibana:/usr/share/kibana/config -p 127.0.0.1:5601:5601 --network core docker.elastic.co/kibana/kibana:6.1.2

docker run --name chronograf --rm -d -v /var/lib/chronograf:/var/lib/chronograf -p 127.0.0.1:8888:8888 --network core chronograf:1.4 chronograf --influxdb-url=http://influxdb:8086

рдЗрдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, docker ps рдирдП рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ 127.0.0.1 рд╕реЗ рдмрд╛рдЙрдВрдб рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рддрдерд╛рд╕реНрддреБред рдореИрдВ рддрдм рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдБрдЪ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реНрдп рдХреЗрдВрджреНрд░ рд╕реЗ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕реБрд░рдВрдЧ рджреЗ рд╕рдХрддрд╛ рд╣реВрдБ, рдЬреИрд╕реЗ:

ssh -i my_ssh_key.pem [email protected]  -L 8888:localhost:8888  -L 5601:localhost:5601 -N

рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ, рдореИрдВ рддрдм http: // localhost : 8888 рдпрд╛ http: // localhost : 5601 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

рдореЗрд░реЗ рд▓рд┐рдпреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рдПрдХ UNIX рд╕реЙрдХреЗрдЯ 127.0.0.1 рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рд╕реЙрдХреЗрдЯ рдХреА рдЬрдЧрд╣ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореИрдВрдиреЗ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз

рд╢рд╛рдпрдж mode рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИред local host рдФрд░ ingress ред

рдХреГрдкрдпрд╛ рд╢рдмреНрджреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ "рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реБрд░рдХреНрд╖рд╛: Moby рдкреНрд░рдпреЛрдЬреНрдп рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЪреВрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред" moby readme рдлрд╝рд╛рдЗрд▓ рдкрд░ ред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╣реИ, @ richard-delorenzi рдХреА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред

рд╕реЗрд╡рд╛рдПрдБ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рдХрд┐ рд╡реЗ рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрдм рддрдХ рдкрд╣реБрдБрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧреАред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдкреА-рдкрддреЗ рдкрд░ рдмрдВрдзрди рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рди рдХрд░реЗрдВ, рдФрд░ рдЖрдВрддрд░рд┐рдХ (рдУрд╡рд░рд▓реЗ) рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

IP- рдкрддреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ https://github.com/moby/moby/issues/26696 рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ (рдЧреИрд░-рд╕реНрдерд╛рдиреАрдп "рдЖрдИрдкреА-рдкрддреЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП)

рдПрдХ рд╕реНрдЯреИрдХ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЬреЛрдбрд╝реА рдЧрдИ рдереА;

docker stack deploy -c- test <<'EOF'
version: '3'
services:
  web:
    image: nginx:alpine
    ports:
      - "127.0.0.1:8080:80"
EOF

WARN[0000] ignoring IP-address (127.0.0.1:8080:80/tcp) service will listen on '0.0.0.0' 
Creating network test_default
Creating service test_web

рдФрд░ рдЬрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдИрдкреА-рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрдЧрд╛;

docker service create -p 127.0.0.1:9090:80 nginx:alpine
invalid argument "127.0.0.1:9090:80" for "-p, --publish" flag: hostip is not supported
See 'docker service create --help'.

@dalu рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИ рдФрд░ рдЖрдкрдиреЗ рдбреЙрдХрд░ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдореНрдореАрдж рдХреБрдЫ рдФрд░ рд╣реЛрдЧреАред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рд░рдЪрдирд╛ рдкреНрд░рд╛рд░реВрдк рджреЗрд╡ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреИрдирд╛рддреА рдХреЗ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╕рдордЭреМрддреЗ рд╣реИрдВред

@ cpuguy83

рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рдВрдкрд░реНрдХ рдореЗрдВ рд╣реИ рдФрд░ рдЖрдкрдиреЗ рдбреЙрдХрд░ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдореНрдореАрдж рдХреБрдЫ рдФрд░ рд╣реЛрдЧреАред

рдирд╣реАрдВред рдпрджрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕реЗ рдЧреИрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрдИрдкреА рдЬреИрд╕реЗ 127.0.0.1 рдпрд╛ 10.0.0.0 рд╕реЗ рдмрд╛рдБрдзрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрдпреЛрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рд╣реА рдЙрддреНрддрд░ рд╣реИ:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ IP- рдкрддреЗ рдкрд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ

@ рд▓рд╛рд▓реВ

рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВред рдФрд░ рдпрд╣рд╛рдВ рдкреВрд░рд╛ рд╕реМрджрд╛ рд╣реИред
рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ рдФрд░ рд╢рдмреНрджрд╛рд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реБрдзрд╛рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрд╣ рдореБрджреНрджрд╛ рд▓рдЧрднрдЧ 2 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рдмрд┐рдирд╛ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗред

рдореИрдВ рдЭреБрдВрдб рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЭреБрдВрдб рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕ рдирд┐рд░реНрдгрдп рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд╢ рд╣реВрдБ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдпрд╣ рд╕рдВрдХреНрд░рдордг рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИред

@Bessonv рдпрд╣ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ "рдореИрдВ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ"

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рджреЗрд╡ рдПрдирд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдбрд┐рдкреНрд▓реЙрдпрдЬрд╝ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдХреЗрд▓рд╛ рдЧрдпрд╛ рд╣реИред "рдбреЙрдХ рд╕реНрдЯреИрдХ" рдХреЛ рдХреЗрд╡рд▓ рддреНрд░реБрдЯрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд▓реЛрдЧ рдЙрди рд╕рднреА рдкрд░ рд╢рд╛рд╕рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред

@ cpuguy83
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реВрдВред рдЕрдВрддрд┐рдо рд░рдЪрдирд╛ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд░реНрдгрди рд╣реИред рдПрдХ-рдорд╢реАрди (рд░рдЪрдирд╛) рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ (рдЭреБрдВрдб) рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЕрдВрддрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИред рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рдорд░реНрдерди рд░рдЪрдирд╛ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рд╕рдХреНрд░рд┐рдп рдЭреБрдВрдб рдореЛрдб рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЭреБрдВрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╕рдорд╕реНрдпрд╛ рд╕рдм рдкрд░ рдЭреБрдВрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдореНрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 100% рд╣реИ + docker cli рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдЯреИрдХ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 100% рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рд╣рдордиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреИрдХ рдХреЗ рдЕрдВрджрд░ рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рд░реЗрдбрд┐рд╕ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреЛрд░реНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдмрд╕ ports рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдирд╛рдо рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред

рдвреЗрд░ рдХреЗ рдЕрдВрджрд░ рдЙрджрд╛рд╣рд░рдг DB рд╕реЗрд╡рд╛

services:
  db:
    image: postgres:11-alpine
  networks:
    - backend

... рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ рджреНрд╡рд╛рд░рд╛ Django app рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

DATABASES = {
    'default': env.db(default='postgres://user:pass<strong i="13">@db</strong>:5432/catalog'),
}

рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдЖрдк рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд-рдмрд╛рдп-рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рд╕рдм рдкрд░ рдЭреБрдВрдб рдореЗрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдореНрдкреЛрдЬрд╝ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 100% рд╣реИ + docker cli рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдЯреИрдХ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 100% рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рдЬреЛ рднреА: рдореИрдВрдиреЗ рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ (рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг), рдФрд░ рдЕрдм рджреЗрдЦрднрд╛рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рджреЛрд╖ рджреЛ, рджреЛрд╖ рдХреЛ рджреЛрд╖ рджреЛ, рдореЗрд░реА рдмрд┐рд▓реНрд▓реА рдХреЛ рджреЛрд╖ рджреЛред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реАрдзреЗ docker рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╛ рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЭреБрдВрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП):

  1. рдЭреБрдВрдб рдЫреЛрдбрд╝реЛ
  2. рдиреЗрдЯрд╡рд░реНрдХ docker_gwbridge рдирд┐рдХрд╛рд▓реЗрдВ
  3. рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк com.docker.network.bridge.host_binding_ipv4 = IP рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ docker_gwbridge рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдБ
  4. рд╡рд╛рдкрд╕ рдЭреБрдВрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ
    "рд╣реЛрд╕реНрдЯ" рдореЛрдб рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмрд┐рдирд╛ рдореЛрдб "рд╣реЛрд╕реНрдЯ" рдЗрдирдЧреНрд░реЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╕реНрдХреЛрдк "рдЭреБрдВрдб" рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рднрдпрд╛рдирдХ рд╕рдорд╛рдзрд╛рди:

$ mv /usr/bin/docker-proxy /usr/bin/docker-proxy-original
$ cat << 'EOF' > /usr/bin/docker-proxy
#!/bin/sh
exec /usr/bin/docker-proxy-original `echo $* | sed s/0.0.0.0/127.0.0.1/g`
EOF
$ chmod 755 /usr/bin/docker-proxy
$ service docker restart

@jsmouret рдореБрдЭреЗ рдирд╡реАрдирддрдо docker рд░рд┐рд▓реАрдЬрд╝ рдкрд░

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ ...

$ apt-file search docker-proxy
docker-ce: /usr/bin/docker-proxy
docker.io: /usr/sbin/docker-proxy

рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдкреНрд░рд▓реЗрдЦрди ред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рд╢реЙрд░реНрдЯ рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рд╕реЗ рд╣реЛрд╕реНрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдФрд░ рдЕрдЬреАрдм рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдореЗрдЬрдмрд╛рди рдХреЛ рд▓рдВрдмреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрдХреАрдорд╛ рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБ; рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЙрд╕ рдкреГрд╖реНрда рдкрд░ рдХрд╣реАрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ; рдбреЙрдХреНрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрд┐рд╕реА рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ; https://github.com/docker/docker.github.io/issues

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рд╢реЙрд░реНрдЯ рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рд╕реЗ рд╣реЛрд╕реНрдЯ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЪреБрдкрдЪрд╛рдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЗрд╕реЗ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдореБрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрдм docker stack deploy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░), рдпрд╛ рдПрдХ _error_ ( docker service create рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп); https://github.com/moby/moby/issues/32299#issuecomment -472793444 рджреЗрдЦреЗрдВ

рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЗрд╕реЗ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрдм рдбреЙрдХ рд╕реНрдЯреИрдХ рдХреА рддреИрдирд╛рддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП), рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ (рдЬрдм docker рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ);

рдК, рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдЧрд▓рддреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдПрдХ рд╕реНрдЯреИрдХ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреЛрд░реНрдЯрд┐рдирд░ рдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рдирд╣реАрдВ рдереАред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░рд╛рд╢ рд╣реИ рдХрд┐ рд▓рдЧрднрдЧ рджреЛ рд╕рд╛рд▓ рдХреБрдЫ рдбреЙрдХрдЯрд░ рджреЗрд╡рддрд╛ рдПрдХ рд╡реИрдз рдФрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдЭреБрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рдкрд░рд┐рдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдмрд╛рдВрдзрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ SSH рд╕реБрд░рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ, рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рдзрд╛рди рдПрдХ рджреВрд╕рд░реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдорд╛рди рдбреЙрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред SSH рдкреЛрд░реНрдЯ рдХреЛ рддрдм рд╣реЛрд╕реНрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 22 рд╕реЗ рднрд┐рдиреНрди рдкреЛрд░реНрдЯ рдкрд░), рдЗрд╕рд▓рд┐рдП рдЖрдк SSH рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@nartamonov рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╡реЗрд╢ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реНрд╡рдпрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рди рд╣реЛред
рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рдкреНрд▓реЗрди (рдЕрддреНрдпрдзрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП --opt encrypted ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдЧрд╛ рдФрд░ рдЬреЛ рднреА рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЙрд╕ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рд╢рд╛рдпрдж рдЕрдиреНрдп рдЕрд╕рдВрдмрдВрдзрд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВ рд▓реЗрдХрд┐рди "iptables": false /etc/docker/daemon.json рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░рд┐рдХ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдХрдо рдХрдареЛрд░ рд╕рдорд╛рдзрд╛рди

рдХрд┐рд╕реА рднреА рддрд░рд╣ рдореИрдВ 3 рд╕рд╛рд▓ рдмрд╛рдж рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╕рдорд░реНрдерди рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЭреБрдВрдб рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП):

1. leave swarm

2. remove network docker_gwbridge

3. recreate network docker_gwbridge with additional option com.docker.network.bridge.host_binding_ipv4=IP

4. join swarm back
   Works for ports published in mode "host". Without mode "host" ingress network is used with other driver and scope "swarm".

@ienovytskyi
рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рдирд╣реАрдВ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреЛрд░реНрдЯреНрд╕ рдХреЛ рджрд┐рдП рдЧрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ IP рдкрддреЗ рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИ? рддреЛ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдХреБрдЫ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рдЕрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг:
рдЭреБрдВрдб рдореЗрдВ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд╕реБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рдХрдВрдЯреЗрдирд░ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╣реИ
рдЙрди рдЭреБрдВрдб рдиреЛрдбреНрд╕ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрджрд╛рд╣рд░рдг рднреА рд╣реИ, рдЬреЛ рдПрдХ рдЭреБрдВрдб рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

docker network create --scope swarm NETWORK_NAME --attachable -d overlay

рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрд╕реЗ NETWORK_NAME рдЬрд░реВрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕реАрдзреЗ рдЬреБрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

рдЙрдкрд╛рдп:
рдХреЗрд╡рд▓ рд╡реЗ рд╕реЗрд╡рд╛рдПрдБ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рднреА рдиреЗрдЯрд╡рд░реНрдХреЛрдВ рдкрд░ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдореЗрд░реА рдорд┐рд╕рд╛рд▓ рдореЗрдВ рдЙрд▓реНрдЯреА рд╕рдореАрдкрддрд╛) рдЙрдирдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ ports: ['SOMEPORT:ANOTHERPORT'] рд╣реЛ рд╕рдХрддреА рд╣реИрдВред

рдЕрдиреНрдп рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдореЗрдЬрдмрд╛рди рдкрд░ рдЧреИрд░-рдЭреБрдВрдб рдХрдВрдЯреЗрдирд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣ рдЧреИрд░-рдЭреБрдВрдб рдХрдВрдЯреЗрдирд░ NETWORK_NAME/nodeXYZ:port рд╕реЗ localhost рдкрд░ рдореМрдЬреВрдж рдкреЛрд░реНрдЯ рдХреЛ рдмреНрд░рд┐рдЬ рдХрд░реЗрдЧрд╛

рдордВрдЧреЛрд▓ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг:

docker run --rm -it --net=NETWORK_NAME -d --name expose-mongo -p 127.0.0.1:27017:47017 alpine/socat tcp-listen:47017,fork,reuseaddr tcp-connect:mongo01:27017

рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖: рдкреНрд░рддреНрдпреЗрдХ рдЭреБрдВрдб рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рдЭреБрдВрдб рдХрдВрдЯреЗрдирд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдХрдИ рдиреЛрдбреНрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдмрд╛рдК рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ ansible / рднрд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдирд╣реАрдВ рд╣реИред

"рдпрджрд┐ рдЖрдк SSH рд╕реБрд░рдВрдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝ рд░рд╣реЗ рд╣реИрдВ" рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХрд┐ @ fer2d2 рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдПрдХ Dsherfile рдХреЗ рд╕рд╛рде ssh рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

FROM alpine

RUN apk add --no-cache openssh
RUN mkdir ~/.ssh
RUN ssh-keygen -A
RUN echo "root:root" | chpasswd
RUN echo 'PasswordAuthentication no' >> /etc/ssh/sshd_config
RUN echo 'Port 22' >> /etc/ssh/sshd_config
RUN echo -e " \
Match User root \n\
  AllowTcpForwarding yes\n\
  X11Forwarding no\n\
  AllowAgentForwarding no\n\
  ForceCommand /bin/false\n\
" >> /etc/ssh/sshd_config

EXPOSE 22
CMD /usr/sbin/sshd -D -e "$@"

рдлрд┐рд░ docker-compose.yml рдореЗрдВ:

...
  db:
    image: mysql:5.6
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?err}
      MYSQL_ROOT_HOST: '%'
    volumes:
      - "./mysql:/var/lib/mysql"
    deploy:
      placement:
        constraints: [node.role == manager]

  sshd:
    image: maxisme/sshd:latest
    volumes:
      - "~/.ssh:/root/.ssh"
    ports:
      - "2223:22"
    deploy:
      placement:
        constraints: [node.role == manager]

рдЬреЛ рдореБрдЭреЗ ~/.ssh рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдзрд┐рдХреГрдд_рдХреАрдкреНрд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреЛрд░реНрдЯ 2223 рд╕реЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ db рд╣реЛрд╕реНрдЯрдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ssh рдЫрд▓рд╛рдВрдЧ рд▓рдЧрд╛рддрд╛ рд╣реИред

рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ, рд╕реНрд╡рдЪреНрдЫ рд╕рдорд╛рдзрд╛рди рдПрдХ рджреВрд╕рд░реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдорд╛рди рдбреЙрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред SSH рдкреЛрд░реНрдЯ рдХреЛ рддрдм рд╣реЛрд╕реНрдЯ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 22 рд╕реЗ рднрд┐рдиреНрди рдкреЛрд░реНрдЯ рдкрд░), рдЗрд╕рд▓рд┐рдП рдЖрдк SSH рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡реИрдз

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрдпреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ plesk рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, plesk рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдмрд╕ рдПрдХ docker рдХрд░реНрдо рд╕реЗрд╡рд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ plesk рд╕рд░реНрд╡рд░ рдПрдХ рдЭреБрдВрдб рдиреЛрдб рд╣реИред
рдореИрдВ рдПрдХ рдкреЛрд░реНрдЯ рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА_рдкрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреНрд▓рд┐рд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕ рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░ рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдкреЛрд░реНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддреЛ рд╕рдореАрдкрд╕реНрде рдХреЛ 127.0.0.1 рдЬреИрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: someport
рдФрд░ рдЭреБрдВрдб рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреЗрд╡рд▓ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреЛ рдкреЛрд░реНрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕ рддрд░рд╣ рдХрдВрдЯреЗрдирд░ рдкреЛрд░реНрдЯ рдХреЗрд╡рд▓ рд╕рдореАрдкрд╕реНрде рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рджреБрдирд┐рдпрд╛ рд╕реЗ рдирд╣реАрдВ

рдореБрдЭреЗ рдЖрдкрдХрд╛ рд╡рд░реНрдХрдЕрдо @maxisme рдкрд╕рдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк authorized_keys рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ? рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдорд╛рдЙрдВрдЯ root ), рд▓реЗрдХрд┐рди рдПрдХ рдЙрддреНрдкрд╛рджрди рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдкрд░ рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ:

Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys
Connection closed by authenticating user root 85.145.195.174 port 60535 [preauth]

рд╡реЙрд▓реНрдпреВрдо рд╣реЛрд╕реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдпреВрдЖрдИрдбреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬреЛ root рдФрд░ SSHD рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб use рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ configs рдЗрд╕ рддрд░рд╣ рдХрд░рдирд╛ рд╣реИ:

services:
  sshd:
    image: [...]/sshd:${version}
    configs:
      # FIXME: It would be much better to use a bind volume for this, as it
      # would always be in sync with the host configuration. So revoking a key
      # in the host machine would automatically revoke it in the container. But
      # I can't figure out how to give the volume right ownership. It keeps UID
      # from the host which doesn't align with the container user.
      - source: authorized_keys
        target: /root/.ssh/authorized_keys
        mode: 0600

configs:
  authorized_keys:
    file: ~/.ssh/authorized_keys

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХрд┐рд╕ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрд╕реНрдЯ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрдХреНрд╕рд░ рдореЗрдЬрдмрд╛рди рдХреЗ рдкрд╛рд╕ рдЙрддреНрддрд░ рдФрд░ рджрдХреНрд╖рд┐рдг рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдЭреБрдВрдб рдХреЗ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕рднреА рдЭреБрдВрдб рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдЙрддреНрддрд░рдкреВрд░реНрд╡реА рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдмрд╛рдБрдзрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╛рдо рд╕рдорд╛рди рд╣реЛрдВ (рдЬреИрд╕реЗ рдХрд┐ eth0), рддреЛ рдпрд╣ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд╡реЙрд░реНрдо рдкреЛрд░реНрдЯ рдХреЛ (рд╕рд░реНрд╡рд┐рд╕ рдкреЛрд░реНрдЯреНрд╕ рд╕реЗрдХреНрд╢рди рдореЗрдВ) рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлреЗрдиреЗрд╕рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПред

    nginx:
      image: nvbeta/swarm_nginx
      networks:
        - demonet1
      ports:
        - "eth0:8088:80"

рдЬрдм eth0 рдПрдХ рдЭреБрдВрдб рдиреЛрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреЛрд░реНрдЯ рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

@ tad-lispy рдЖрдкрдХреЛ рдХрдВрдЯреЗрдирд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдпреВрдЖрдИрдбреА рдФрд░ рдЬреАрдЖрдИрдбреА тАЛтАЛрдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣реЛрд╕реНрдЯ рдкрд░ рд╡реЙрд▓реНрдпреВрдо рд╕реНрд╡рд╛рдореА рдХреЗ рд╕рдорд╛рди рд╣реЛред
Linuxserver рдХреА рдЫрд╡рд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ (рджреЗрдЦреЗрдВ https://hub.docker.com/r/linuxserver/openssh-server, User / Group Identifiers ),

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

anshumanbh picture anshumanbh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

programmerq picture programmerq  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nisanharamati picture nisanharamati  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ailjushkin picture ailjushkin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

noahwhite picture noahwhite  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ