Docker

Виртуальные машины и среды исполнения

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 28 июл 2017, 13:54

Olej писал(а): Важно то, что 2 контейнера, запущенные из одного образа стартуют с IP в одной подсети, видят друг друга.
В 1-м контейнере ("виртуальной машине"):

Код: Выделить всё

c899bace9df5 / # apt search iperf
p   iperf                                                                                       - Internet Protocol bandwidth measuring tool                             
p   iperf:i386                                                                                  - Internet Protocol bandwidth measuring tool
p   iperf3                                                                                      - Internet Protocol bandwidth measuring tool
p   iperf3:i386                                                                                 - Internet Protocol bandwidth measuring tool
p   libiperf-dev                                                                                - Internet Protocol bandwidth measuring tool (development files)
p   libiperf-dev:i386                                                                           - Internet Protocol bandwidth measuring tool (development files)
p   libiperf0                                                                                   - Internet Protocol bandwidth measuring tool (runtime files)
p   libiperf0:i386                                                                              - Internet Protocol bandwidth measuring tool (runtime files)
c899bace9df5 / # apt install iperf
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  iperf
0 upgraded, 1 newly installed, 0 to remove and 420 not upgraded.
Need to get 51.0 kB of archives.
After this operation, 184 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 iperf amd64 2.0.5+dfsg1-2 [51.0 kB]
Fetched 51.0 kB in 0s (118 kB/s)
Selecting previously unselected package iperf.
(Reading database ... 196644 files and directories currently installed.)
Preparing to unpack .../iperf_2.0.5+dfsg1-2_amd64.deb ...
Unpacking iperf (2.0.5+dfsg1-2) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 35 changed doc-base files, 1 added doc-base file...
Error in `/usr/share/doc-base/xapian-python3-docs', line 9: all `Format' sections are invalid.
Note: `install-docs --verbose --check file_name' may give more details about the above error.
Registering documents with scrollkeeper...
Setting up iperf (2.0.5+dfsg1-2) ...
c899bace9df5 / # iperf -c 172.17.0.3
------------------------------------------------------------
Client connecting to 172.17.0.3, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 172.17.0.2 port 33286 connected with 172.17.0.3 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  15.5 GBytes  13.3 Gbits/sec
Во 2-й машине:

Код: Выделить всё

ab2c6c3131f2 / # apt install iperf
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  iperf
0 upgraded, 1 newly installed, 0 to remove and 420 not upgraded.
Need to get 51.0 kB of archives.
After this operation, 184 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 iperf amd64 2.0.5+dfsg1-2 [51.0 kB]
Fetched 51.0 kB in 0s (188 kB/s)
Selecting previously unselected package iperf.
(Reading database ... 196644 files and directories currently installed.)
Preparing to unpack .../iperf_2.0.5+dfsg1-2_amd64.deb ...
Unpacking iperf (2.0.5+dfsg1-2) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for doc-base (0.10.7) ...
Processing 35 changed doc-base files, 1 added doc-base file...
Error in `/usr/share/doc-base/xapian-python3-docs', line 9: all `Format' sections are invalid.
Note: `install-docs --verbose --check file_name' may give more details about the above error.
Registering documents with scrollkeeper...
Setting up iperf (2.0.5+dfsg1-2) ...
ab2c6c3131f2 / # ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
23: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.3/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:3/64 scope link 
       valid_lft forever preferred_lft forever
ab2c6c3131f2 / # iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 172.17.0.3 port 5001 connected with 172.17.0.2 port 33286
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  15.5 GBytes  13.3 Gbits/sec
Отличные скорости в этой виртуальной сети! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 28 июл 2017, 14:28

Olej писал(а):Если импортируются разные образы, они устанавливаются в разные подсети, и не видят друг друга (без специальных усилий по пробросу трафика между).
То что мне как-раз и нужно... :cry:
По этому поводу нашёл (пока) только вот это руководство Linking Containers Together:
Network port mappings are not the only way Docker containers can connect to one another. Docker also has a linking system that allows you to link multiple containers together and send connection information from one to another. When containers are linked, information about a source container can be sent to a recipient container. This allows the recipient to see selected data describing aspects of the source container.
Но это архивное описание одной из старых версий 1.4:
This is archived documentation for Docker 1.4. Go to the latest docs or a different version:
А у меня имеет место:

Код: Выделить всё

[olej@xenix ~]$ docker version
Client:
 Version:         1.12.6
 API version:     1.24
 Package version: docker-common-1.12.6-6.gitae7d637.fc25.x86_64
 Go version:      go1.7.4
 Git commit:      ae7d637/1.12.6
 Built:           Mon Jan 30 16:15:28 2017
 OS/Arch:         linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Наверняка должно быть что-то из более свежих описаний и других способов.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 28 июл 2017, 18:58

Olej писал(а): Важно то, что 2 контейнера, запущенные из одного образа стартуют с IP в одной подсети, видят друг друга.
Если импортируются разные образы, они устанавливаются в разные подсети, и не видят друг друга (без специальных усилий по пробросу трафика между).
Здесь я дал маху! :oops:
Импортирую ещё 1 образ:

Код: Выделить всё

[olej@xenix rx_server]$ sudo docker pull docker.io/vcatechnology/base-linux-mint
Using default tag: latest
Trying to pull repository docker.io/vcatechnology/base-linux-mint ... 
sha256:2a8275efdc9ac4fea0375ce15bffa19bd9bd8f7a7b96ed0f1b86e77f6660ddf9: Pulling from docker.io/vcatechnology/base-linux-mint
e65b64dc71a5: Already exists 
Digest: sha256:2a8275efdc9ac4fea0375ce15bffa19bd9bd8f7a7b96ed0f1b86e77f6660ddf9
Status: Downloaded newer image for docker.io/vcatechnology/base-linux-mint:latest

[olej@xenix rx_server]$ sudo docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
qkd/proxy_server                          latest              c29047e43bf8        3 months ago        558.5 MB
qkd/base                                  latest              52872f1783db        3 months ago        1.161 GB
docker.io/cdbishop89/docker-mint18-ci     latest              d5ff8e8ae673        10 months ago       4.67 GB
docker.io/vcatechnology/base-linux-mint   latest              857e091bbb4b        10 months ago       4.445 GB
Запускаем:

Код: Выделить всё

[olej@xenix rx_server]$ sudo docker run --rm -ti -u root docker.io/vcatechnology/base-linux-mint /bin/bash
[sudo] пароль для olej: 

bd0653873c1e / # ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
25: eth0@if26: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.4/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:4/64 scope link 
       valid_lft forever preferred_lft forever

bd0653873c1e / # ping 172.17.0.2 
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.145 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.089 ms
^C
--- 172.17.0.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1049ms
rtt min/avg/max/mdev = 0.089/0.117/0.145/0.028 ms

bd0653873c1e / # ping 172.17.0.3
PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.
64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.213 ms
64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.089 ms
^C
--- 172.17.0.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2043ms
rtt min/avg/max/mdev = 0.089/0.131/0.213/0.057 ms

bd0653873c1e / # arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
172.17.0.2               ether   02:42:ac:11:00:02   C                     eth0
172.17.0.3               ether   02:42:ac:11:00:03   C                     eth0

bd0653873c1e / # ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
25: eth0@if26: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0

bd0653873c1e / # lsb_release -a
No LSB modules are available.
Distributor ID:	LinuxMint
Description:	Linux Mint 18 Sarah
Release:	18
Codename:	sarah
Как легко видеть, это 3-й хост в сети 172.17.0.0

Код: Выделить всё

[olej@xenix rx_server]$ sudo docker ps
CONTAINER ID        IMAGE                                     COMMAND             CREATED             STATUS              PORTS               NAMES
bd0653873c1e        docker.io/vcatechnology/base-linux-mint   "/bin/bash"         33 minutes ago      Up 33 minutes                           amazing_heisenberg
ab2c6c3131f2        docker.io/cdbishop89/docker-mint18-ci     "/bin/bash"         6 hours ago         Up 6 hours                              happy_hopper
c899bace9df5        docker.io/cdbishop89/docker-mint18-ci     "/bin/bash"         6 hours ago         Up 6 hours                              hopeful_mestorf
Изолированное пространство, отдельная подсеть, создаётся если импортированный образ запускать командой (средством) docker-compose (более позднее приобретение в docker):

Код: Выделить всё

[olej@xenix ~]$ docker-compose --version
docker-compose version 1.9.0, build 2585387

[olej@xenix ~]$ docker-compose --help
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME     Specify an alternate project name (default: directory name)
  --verbose                   Show more output
  -v, --version               Print version and exit
  -H, --host HOST             Daemon socket to connect to

  --tls                       Use TLS; implied by --tlsverify
  --tlscacert CA_PATH         Trust certs signed only by this CA
  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
  --tlskey TLS_KEY_PATH       Path to TLS key file
  --tlsverify                 Use TLS and verify the remote
  --skip-hostname-check       Don't check the daemon's hostname against the name specified
                              in the client certificate (for example if your docker host
                              is an IP address)
Commands:
  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pull service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information
При этом сам контейнер мы должны описать в JSON файле xxx.yml ... типа:

Код: Выделить всё

...
    config:
        image: docker.io/cdbishop89/docker-mint18-ci
        working_dir: ./
        command: bash
...
А запуск будет выглядеть как:

Код: Выделить всё

$ sudo docker-compose -f xxx.yml
Это и есть та проблема, с которой я бодаюсь в экспортируемых мной проектах.
Но с этим ... написанием *.yml и т.д. - разберёмся уже в следующий раз ;-)

P.S. (дописано позже): так получилось, из-за большого объёма, что всё это "дальше" вынесено и продолжено в соседней теме: Docker Compose

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 28 июл 2017, 19:24

Olej писал(а): Но с этим ... написанием *.yml и т.д. - разберёмся уже в следующий раз ;-)
А пока ... ;-)

Код: Выделить всё

[olej@xenix rx_server]$ sudo docker ps
CONTAINER ID        IMAGE                                     COMMAND             CREATED             STATUS              PORTS               NAMES
bd0653873c1e        docker.io/vcatechnology/base-linux-mint   "/bin/bash"         36 minutes ago      Up 36 minutes                           amazing_heisenberg
ab2c6c3131f2        docker.io/cdbishop89/docker-mint18-ci     "/bin/bash"         6 hours ago         Up 6 hours                              happy_hopper
c899bace9df5        docker.io/cdbishop89/docker-mint18-ci     "/bin/bash"         6 hours ago         Up 6 hours                              hopeful_mestorf

[olej@xenix rx_server]$ sudo docker stop ab2c6c3131f2 c899bace9df5
ab2c6c3131f2
c899bace9df5

[olej@xenix rx_server]$ sudo docker ps
CONTAINER ID        IMAGE                                     COMMAND             CREATED             STATUS              PORTS               NAMES
bd0653873c1e        docker.io/vcatechnology/base-linux-mint   "/bin/bash"         37 minutes ago      Up 37 minutes                           amazing_heisenberg

Код: Выделить всё

[olej@xenix rx_server]$ sudo docker stop bd0653873c1e
bd0653873c1e

[olej@xenix rx_server]$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
До новых встреч! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 13:47

Olej писал(а): Изолированное пространство, отдельная подсеть, создаётся если импортированный образ запускать командой (средством) docker-compose (более позднее приобретение в docker):
Оригинальная документация по Docker Compose, да ещё и переведенная на русский язык для беглого просмотра, здесь: Документация по Docker Compose

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 17:48

Olej писал(а): Получается херня ... или я что-то не так делаю... :cry:
Это буду уточнять.

В документации Использование командной строки Docker тоже про это сказано:
В зависимости от конфигурации вашей Docker системы, вам может потребоваться добавлять перед каждой командой docker команду sudo. Для того, чтобы избежать необходимости использовать sudo с командами docker, ваш системный администратор может создать Unix группу docker и добавить в нее нужных пользователей.
Но это как-то не сработало...
Похоже таки это (docker без sudo) сработало :-o ... но (наверное) после перезагрузки системы (возможно тот же результат был бы достигнут простым перелогоном пользователя).
По крайней мере, просто restart сервиса docker в этом смысле не помогло.
А сейчас вижу:

Код: Выделить всё

[olej@xenix Docker]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
488f17699a70        qkd/proxy_server    "/bin/sh -c rabbitmq-"   5 days ago          Up 3 hours          0.0.0.0:5671->5671/tcp, 0.0.0.0:15672->15672/tcp   qkdproxyserver_proxy_server_1
(что там за контейнер запущен - неважно).

По поводу sudo и прав root ...
1. колотить sudo для каждой самой малозначимой команды docker (многие десятки команд) - может совершенно достать при интенсивной работе с командами;
2. но пытаться работать в сессии от root - это вообще катастрофа и за такое нужно просто руки отбивать;
3. вот это решение с группой пользователей docker - это совершенно удовлетворительно!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 17:58

Очень интересный раздел документации Docker Сетевые контейнеры/
Здесь много ответов на задаваемые выше вопросы!
Запуск контейнера в сети
Каждая установка Docker Engine автоматически включает три сети по умолчанию. Вы можете посмотреть их список:
...
Сеть с названием bridge является основной. Если вы не скажете ему иначе, Docker всегда запускает все контейнеры в этой сети.
...
Сети естественный способ для изолирования контейнеров друг от друга и от других сетей. Когда вы наберетесь опыта в Docker, вы наверняка захотите создавать собственные сети.
Создание собственной сети типа мост

Код: Выделить всё

[olej@xenix Docker]$ docker network create -d bridge my-new-bridge
6487f69290a242d12d30f503059989de326702e0e7ea294fbf948ae9e7af8224
[olej@xenix Docker]$ sudo docker network ls
[sudo] пароль для olej: 
NETWORK ID          NAME                            DRIVER              SCOPE
0f82fa586537        bridge                          bridge              local               
ba7c44df422c        host                            host                local               
6487f69290a2        my-new-bridge                   bridge              local               
0da3fd3b6955        none                            null                local               
09fe500720a4        qkdproxyserver_default          bridge              local               
265a19a5e1e3        qkdrxserver_default             bridge              local               
7f5df562e08f        qkdrxserver_zabbix_zbx_net_rx   bridge              local               

Код: Выделить всё

[olej@xenix Docker]$ ip address show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 8c:89:a5:74:f4:a5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.20/24 brd 192.168.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::8e89:a5ff:fe74:f4a5/64 scope link 
       valid_lft forever preferred_lft forever
3: br-09fe500720a4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:87:c8:58 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 scope global br-09fe500720a4
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe87:c858/64 scope link 
       valid_lft forever preferred_lft forever
4: br-265a19a5e1e3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:bf:ad:4f:f5 brd ff:ff:ff:ff:ff:ff
    inet 172.19.0.1/16 scope global br-265a19a5e1e3
       valid_lft forever preferred_lft forever
    inet6 fe80::42:bfff:fead:4ff5/64 scope link 
       valid_lft forever preferred_lft forever
5: br-7f5df562e08f: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:56:f1:e1:93 brd ff:ff:ff:ff:ff:ff
    inet 172.16.241.1/24 scope global br-7f5df562e08f
       valid_lft forever preferred_lft forever
    inet6 fe80::42:56ff:fef1:e193/64 scope link 
       valid_lft forever preferred_lft forever
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:f3:a1:08:dd brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
8: vetha5c2bf6@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-09fe500720a4 state UP group default 
    link/ether 0e:c5:eb:03:79:a9 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::cc5:ebff:fe03:79a9/64 scope link 
       valid_lft forever preferred_lft forever
29: br-6487f69290a2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:5d:d3:6b:28 brd ff:ff:ff:ff:ff:ff
    inet 172.20.0.1/16 scope global br-6487f69290a2
       valid_lft forever preferred_lft forever
Вот та подсеть 172.20.0.0 - это и есть вновь созданная, это видно по имени интерфейса: br-<NETWORK ID>.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 18:07

Olej писал(а): Вот та подсеть 172.20.0.0 - это и есть вновь созданная, это видно по имени интерфейса: br-<NETWORK ID>.
И запуск контейнера ... из любого имеющегося в наличии образов:

Код: Выделить всё

[olej@xenix Docker]$ docker images
REPOSITORY                                TAG                 IMAGE ID            CREATED             SIZE
qkd/proxy_server                          latest              c29047e43bf8        3 months ago        558.5 MB
qkd/base                                  latest              52872f1783db        3 months ago        1.161 GB
docker.io/cdbishop89/docker-mint18-ci     latest              d5ff8e8ae673        10 months ago       4.67 GB
docker.io/vcatechnology/base-linux-mint   latest              857e091bbb4b        10 months ago       4.445 GB
Запуск:

Код: Выделить всё

[olej@xenix Docker]$ docker run --rm -ti --network=my-new-bridge docker.io/vcatechnology/base-linux-mint /bin/bash 
8bf1920c36bb / # whoami
root
8bf1920c36bb / # ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
32: eth0@if33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.20.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe14:2/64 scope link 
       valid_lft forever preferred_lft forever
8bf1920c36bb / # exit
exit
172.20.0.2 ! ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 18:23

Olej писал(а): Запуск:
...
172.20.0.2 ! ;-)
Docker позволяет подключать контейнеры к любому количеству сетей. Также возможно подключить и уже запущенный контейнер.

Код: Выделить всё

[olej@xenix Docker]$ docker run --rm -ti --network=my-new-bridge docker.io/vcatechnology/base-linux-mint /bin/bash 

bb548b8a65fa / # ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
34: eth0@if35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.20.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe14:2/64 scope link 
       valid_lft forever preferred_lft forever

bb548b8a65fa / # ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
^C
--- 172.17.0.2 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4121ms
ping в умалчиваемую подсеть 172.17.0 не проходит.
Теперь с другого терминала делаю так:

Код: Выделить всё

[olej@xenix Docker]$ docker ps
CONTAINER ID        IMAGE                                     COMMAND                  CREATED              STATUS              PORTS                                              NAMES
bb548b8a65fa        docker.io/vcatechnology/base-linux-mint   "/bin/bash"              About a minute ago   Up About a minute                                                      clever_curie
488f17699a70        qkd/proxy_server                          "/bin/sh -c rabbitmq-"   5 days ago           Up 4 hours          0.0.0.0:5671->5671/tcp, 0.0.0.0:15672->15672/tcp   qkdproxyserver_proxy_server_1

[olej@xenix Docker]$ docker network connect bridge clever_curie
И повторяем:

Код: Выделить всё

bb548b8a65fa / # ping 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.035 ms
64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.053 ms
^C
--- 172.17.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3052ms
rtt min/avg/max/mdev = 0.035/0.049/0.069/0.014 ms

bb548b8a65fa / # ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
34: eth0@if35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:14:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.20.0.2/16 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe14:2/64 scope link 
       valid_lft forever preferred_lft forever
36: eth1@if37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link 
       valid_lft forever preferred_lft forever
2 сетевых интерфейса в контейнере.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Docker

Непрочитанное сообщение Olej » 29 июл 2017, 21:15

Вот такой есть любопытный форум: Docker форум на русском.
Там можно найти любопытные детали ...
Жаль, что активность там совсем низкая.

Ответить

Вернуться в «Виртуализация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей