1toolbox-create(1)() toolbox-create(1)()
2
3
4
6 toolbox-create - Create a new toolbox container
7
8
10 toolbox create [--distro DISTRO | -d DISTRO]
11 [--image NAME | -i NAME]
12 [--release RELEASE | -r RELEASE]
13 [CONTAINER]
14
15
17 Creates a new toolbox container. You can then use the toolbox enter
18 command to interact with the container at any point.
19
20
21 A toolbox container is an OCI container created from an OCI image. On
22 Fedora, the default image is known as fedora-toolbox:N, where N is the
23 release of the host. If the image is not present locally, then it is
24 pulled from a well-known registry like registry.fedoraproject.org.
25 Other images may be used on other host operating systems. If the host
26 is not recognized, then the Fedora image will be used.
27
28
29 The container is created with podman create, and its entry point is set
30 to toolbox init-container.
31
32
33 By default, a toolbox container is named after its corresponding image.
34 If the image had a tag, then the tag is included in the name of the
35 container, but it's separated by a hyphen, not a colon. A different
36 name can be assigned by using the CONTAINER argument.
37
38
39 Container Configuration
40 A toolbox container seamlessly integrates with the rest of the operat‐
41 ing system by providing access to the user's home directory, the Way‐
42 land and X11 sockets, networking (including Avahi), removable devices
43 (like USB sticks), systemd journal, SSH agent, D-Bus, ulimits, /dev and
44 the udev database, etc..
45
46
47 The user ID and account details from the host is propagated into the
48 toolbox container, SELinux label separation is disabled, and the host
49 file system can be accessed by the container at /run/host. The con‐
50 tainer has access to the host's Kerberos credentials cache if it's con‐
51 figured to use KCM caches.
52
53
54 A toolbox container can be identified by the com.github.contain‐
55 ers.toolbox label or the /run/.toolboxenv file.
56
57
58 The entry point of a toolbox container is the toolbox init-container
59 command which plays a role in setting up the container, along with the
60 options passed to podman create.
61
62
63 Entry Point
64 A key feature of toolbox containers is their entry point, the toolbox
65 init-container command.
66
67
68 OCI containers are inherently immutable. Configuration options passed
69 through podman create are baked into the definition of the OCI con‐
70 tainer, and can't be changed later. This means that changes and im‐
71 provements made in newer versions of Toolbox can't be applied to pre-
72 existing toolbox containers created by older versions of Toolbox. This
73 is avoided by using the entry point to configure the container at run‐
74 time.
75
76
77 The entry point of a toolbox container customizes the container to fit
78 the current user by ensuring that it has a user that matches the one on
79 the host, and grants it sudo and root access.
80
81
82 Crucial configuration files, such as /etc/host.conf, /etc/hosts,
83 /etc/localtime, /etc/resolv.conf and /etc/timezone, inside the con‐
84 tainer are kept synchronized with the host. The entry point also bind
85 mounts various subsets of the host's filesystem hierarchy to their cor‐
86 responding locations inside the container to provide seamless integra‐
87 tion with the host. This includes /run/libvirt, /run/systemd/journal,
88 /run/udev/data, /var/lib/libvirt, /var/lib/systemd/coredump,
89 /var/log/journal and others.
90
91
92 On some host operating systems, important paths like /home, /media or
93 /mnt are symbolic links to other locations. The entry point ensures
94 that paths inside the container match those on the host, to avoid need‐
95 less confusion.
96
97
99 --distro DISTRO, -d DISTRO
100
101
102 Create a toolbox container for a different operating system DISTRO than
103 the host. Cannot be used with --image.
104
105
106 --image NAME, -i NAME
107
108
109 Change the NAME of the base image used to create the toolbox container.
110 This is useful for creating containers from custom-built base images.
111 Cannot be used used with --release.
112
113
114 If NAME does not contain a registry, the local image storage will be
115 consulted, and if it's not present there then it will be pulled from a
116 suitable remote registry.
117
118
119 --release RELEASE, -r RELEASE
120
121
122 Create a toolbox container for a different operating system RELEASE
123 than the host. Cannot be used with --image.
124
125
127 Create a toolbox container using the default image matching the host OS
128 $ toolbox create
129
130
131
132 Create a toolbox container using the default image for Fedora 30
133 $ toolbox create --distro fedora --release f30
134
135
136
137 Create a custom toolbox container from a custom image
138 $ toolbox create --image bar foo
139
140
141
143 toolbox(1), toolbox-init-container(1), podman(1), podman-create(1)
144
145
146
147 toolbox-create(1)()