summaryrefslogtreecommitdiff
path: root/docs/configuration/container/index.rst
blob: 2447cf9001f9b68fcb11180ad6f6d02e9886de5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.. _container:

########
Container
########

*************
Configuration
*************

.. cfgcmd:: set container <name>

   Set an named container.

.. cfgcmd:: set container network <networkname>

    Creates a named container network

.. cfgcmd:: set container registry <name>

    By default, for any image that does not include the registry in the image name, Vyos will use docker.io. Multiple registries
    can be added as unqualified-search-registries using this command 

.. cfgcmd:: set container <name> image        
    
    Sets the image name in the hub registry 

    .. code-block:: none

      set container name mysql-server image mysql:8.0

    If a registry is not specefied, Docker.io will be used as the registry by default unless an alternative registry is specefied
    using **set container registry <name>** or the registry is included in the image name

    .. code-block:: none

      set container name mysql-server image quay.io/mysql:8.0

.. cfgcmd:: set container <name> allow-host-networks
    
    Allow host networking in container. The network stack of the container is not isolated from the host and will use the
    host IP.

    The following commands translates to "--net host" when the container is created 

    .. note:: **allow-host-networks** cannot be used with **network** 

.. cfgcmd:: set container <name> description <text>

    Sets the container description

.. cfgcmd:: set container <name> environment '<key>' value '<value>'

    Adds a custom environment variables. Multiple enviroment variables are allowed. The following commands translates to "-e key=value" when container is created. 

    .. code-block:: none

        set container name mysql-server environment 'MYSQL_DATABASE' value 'zabbix'
        set container name mysql-server environment 'MYSQL_USER' value 'zabbix'
        set container name mysql-server environment 'MYSQL_PASSWORD' value 'zabbix_pwd'
        set container name mysql-server environment 'MYSQL_ROOT_PASSWORD' value 'root_pwd'

.. cfgcmd:: set container <name> network <networkname> 

    Attaches user defined network to container. Only one network must be specefied and must already exist.

    Optionally a specific static IPv4 or IPv6 address can be set for the container. This address must be within the named network.

    .. code-block:: none

        set container <name> network <networkname> address <address> 

    .. note:: The first IP in the container network is reserved by the engine and cannot be used

.. cfgcmd:: set container <name> port <portname> [source | destination ] <portnumber>

    Publishes a port for the container

    .. code-block:: none

    set container name zabbix-web-nginx-mysql port http source 80
    set container name zabbix-web-nginx-mysql port http destination 8080

.. cfgcmd:: set container <name> volume <volumename> [source | destination ] <path>

    Mount a volume into the container

    .. code-block:: none

    set container name coredns volume 'corefile' source /config/coredns/Corefile
    set container name coredns volume 'corefile' destination /etc/Corefile
    


*********************
Example Configuration
*********************

    .. code-block:: none

    set container network zabbix-net prefix 172.20.0.0/16
    set container network zabbix-net description 'Network for Zabbix component containers'

    set container name mysql-server image mysql:8.0
    set container name mysql-server network zabbix-net

    set container name mysql-server environment 'MYSQL_DATABASE' value 'zabbix'
    set container name mysql-server environment 'MYSQL_USER' value 'zabbix'
    set container name mysql-server environment 'MYSQL_PASSWORD' value 'zabbix_pwd'
    set container name mysql-server environment 'MYSQL_ROOT_PASSWORD' value 'root_pwd' 

    set container name zabbix-java-gateway image zabbix/zabbix-java-gateway:alpine-5.2-latest
    set container name zabbix-java-gateway network zabbix-net

    set container name zabbix-server-mysql image zabbix/zabbix-server-mysql:alpine-5.2-latest
    set container name zabbix-server-mysql network zabbix-net

    set container name zabbix-server-mysql environment 'DB_SERVER_HOST' value 'mysql-server'
    set container name zabbix-server-mysql environment 'MYSQL_DATABASE' value 'zabbix'
    set container name zabbix-server-mysql environment 'MYSQL_USER' value 'zabbix'
    set container name zabbix-server-mysql environment 'MYSQL_PASSWORD' value 'zabbix_pwd'
    set container name zabbix-server-mysql environment 'MYSQL_ROOT_PASSWORD' value 'root_pwd'
    set container name zabbix-server-mysql environment 'ZBX_JAVAGATEWAY' value 'zabbix-java-gateway'

    set container name zabbix-server-mysql port zabbix source 10051
    set container name zabbix-server-mysql port zabbix destination 10051

    set container name zabbix-web-nginx-mysql image zabbix/zabbix-web-nginx-mysql:alpine-5.2-latest
    set container name zabbix-web-nginx-mysql network zabbix-net

    set container name zabbix-web-nginx-mysql environment 'MYSQL_DATABASE' value 'zabbix'
    set container name zabbix-web-nginx-mysql environment 'ZBX_SERVER_HOST' value 'zabbix-server-mysql'
    set container name zabbix-web-nginx-mysql environment 'DB_SERVER_HOST' value 'mysql-server'
    set container name zabbix-web-nginx-mysql environment 'MYSQL_USER' value 'zabbix'
    set container name zabbix-web-nginx-mysql environment 'MYSQL_PASSWORD' value 'zabbix_pwd'
    set container name zabbix-web-nginx-mysql environment 'MYSQL_ROOT_PASSWORD' value 'root_pwd'
    
    set container name zabbix-web-nginx-mysql port http source 80
    set container name zabbix-web-nginx-mysql port http destination 8080