35 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| 
								 | 
							
								<chapter xmlns="http://docbook.org/ns/docbook"
							 | 
						||
| 
								 | 
							
								        xmlns:xlink="http://www.w3.org/1999/xlink"
							 | 
						||
| 
								 | 
							
								        xmlns:xi="http://www.w3.org/2001/XInclude"
							 | 
						||
| 
								 | 
							
								        version="5.0"
							 | 
						||
| 
								 | 
							
								        xml:id="ch-containers">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<title>Container Management</title>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<para>NixOS allows you to easily run other NixOS instances as
							 | 
						||
| 
								 | 
							
								<emphasis>containers</emphasis>. Containers are a light-weight
							 | 
						||
| 
								 | 
							
								approach to virtualisation that runs software in the container at the
							 | 
						||
| 
								 | 
							
								same speed as in the host system. NixOS containers share the Nix store
							 | 
						||
| 
								 | 
							
								of the host, making container creation very efficient.</para>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<warning><para>Currently, NixOS containers are not perfectly isolated
							 | 
						||
| 
								 | 
							
								from the host system. This means that a user with root access to the
							 | 
						||
| 
								 | 
							
								container can do things that affect the host. So you should not give
							 | 
						||
| 
								 | 
							
								container root access to untrusted users.</para></warning>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<para>NixOS containers can be created in two ways: imperatively, using
							 | 
						||
| 
								 | 
							
								the command <command>nixos-container</command>, and declaratively, by
							 | 
						||
| 
								 | 
							
								specifying them in your <filename>configuration.nix</filename>. The
							 | 
						||
| 
								 | 
							
								declarative approach implies that containers get upgraded along with
							 | 
						||
| 
								 | 
							
								your host system when you run <command>nixos-rebuild</command>, which
							 | 
						||
| 
								 | 
							
								is often not what you want. By contrast, in the imperative approach,
							 | 
						||
| 
								 | 
							
								containers are configured and updated independently from the host
							 | 
						||
| 
								 | 
							
								system.</para>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<xi:include href="imperative-containers.xml" />
							 | 
						||
| 
								 | 
							
								<xi:include href="declarative-containers.xml" />
							 | 
						||
| 
								 | 
							
								<xi:include href="container-networking.xml" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</chapter>
							 | 
						||
| 
								 | 
							
								
							 |