- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud

Serving a Website from a LXD Container
Containers can serve many purposes, but one of the most common is serving websites. In this hands-on lab, we'll leverage everyday LXD commands to initialize a container, configure it to serve a website, and snapshot it so we can later deploy a cluster if desired.

Lab Info
Table of Contents
-
Challenge
Create the Container
Launch an Alpine Linux 3.18 container, called
web01
:lxc launch images:alpine/3.18 web01
-
Challenge
Configure nginx
Access the container's shell:
lxc exec web01 -- ash
Update the container and install
nginx
:apk update apk add nginx
Configure
nginx
to start at boot:rc-service nginx start && rc-update add nginx default
Update the
nginx
configuration to serve content out of/var/www/hub
at port 80:vi /etc/nginx/http.d/default.conf
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/hub/; }
Exit the container:
exit
-
Challenge
Deploy the Website
Push the website to the container:
lxc file push hub/ web01/var/www/ --create-dirs -r
Then restart nginx:
lxc exec web01 -- rc-service nginx restart
We can confirm this work by running
curl
against the private IP of our container:lxc list curl <container-ip-from-list>
-
Challenge
Snapshot the Container
Take a snapshot of the
web01
container:lxc snapshot web01 1.0
-
Challenge
Map Ports
Ensure that when the host's IP is accessed, it forwards to the container:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to <container_ip>:80
To confirm visit the public IP of your provided server.
About the author
Real skill practice before real-world application
Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.
Learn by doing
Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.
Follow your guide
All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.
Turn time into mastery
On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.