:lastproofread: 2022-06-10
#########
Container
#########
The VyOS container implementation is based on `Podman` as
a deamonless container engine.
*************
Configuration
*************
.. 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 specified, Docker.io will be used as the container
registry unless an alternative registry is specified using
**set container registry ** 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 entrypoint
Override the default entrypoint from the image for a container.
.. cfgcmd:: set container name command
Override the default command from the image for a container.
.. cfgcmd:: set container name arguments
Set the command arguments for a container.
.. cfgcmd:: set container name uid
.. cfgcmd:: set container name gid
Set user ID and/or group ID a container will run as.
.. cfgcmd:: set container name host-name
Set the host name for a container.
.. cfgcmd:: set container name allow-host-networks
Allow host networking in a container. The network stack of the container is
not isolated from the host and will use the host IP.
The following commands translate to "--net host" when the container
is created
.. note:: **allow-host-networks** cannot be used with **network**
.. cfgcmd:: set container name network
Attaches user-defined network to a container.
Only one network must be specified and must already exist.
.. cfgcmd:: set container name network address
Optionally set a specific static IPv4 or IPv6 address for the container.
This address must be within the named network prefix.
.. note:: The first IP in the container network is reserved by the
engine and cannot be used
.. cfgcmd:: set container name description
Set a container description
.. cfgcmd:: set container name environment value
Add custom environment variables.
Multiple environment variables are allowed.
The following commands translate to "-e key=value" when the 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 port source
.. cfgcmd:: set container name port destination
.. cfgcmd:: set container name port protocol
Publish 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
set container name zabbix-web-nginx-mysql port http protocol tcp
.. cfgcmd:: set container name volume source
.. cfgcmd:: set container name volume destination
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
.. cfgcmd:: set container name volume mode
Volume is either mounted as rw (read-write - default) or ro (read-only)
.. cfgcmd:: set container name uid
.. cfgcmd:: set container name gid
Set the User ID or Group ID of the container
.. cfgcmd:: set container name restart [no | on-failure | always]
Set the restart behavior of the container.
- **no**: Do not restart containers on exit
- **on-failure**: Restart containers when they exit with a non-zero
exit code, retrying indefinitely (default)
- **always**: Restart containers when they exit, regardless of status,
retrying indefinitely
.. cfgcmd:: set container name memory
Constrain the memory available to the container.
Default is 512 MB. Use 0 MB for unlimited memory.
.. cfgcmd:: set container name device source
.. cfgcmd:: set container name device destination
Add a host device to the container.
.. cfgcmd:: set container name capability
Set container capabilities or permissions.
- **net-admin**: Network operations (interface, firewall, routing tables)
- **net-bind-service**: Bind a socket to privileged ports
(port numbers less than 1024)
- **net-raw**: Permission to create raw network sockets
- **setpcap**: Capability sets (from bounded or inherited set)
- **sys-admin**: Administration operations (quotactl, mount, sethostname,
setdomainame)
- **sys-time**: Permission to set system clock
.. cfgcmd:: set container name label