sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
如果看到欢迎信息,说明 Docker 安装成功。
sudo docker pull nginx
sudo docker images
应该能看到 nginx 镜像在列表中。
sudo docker run --name mynginx -p 80:80 -d nginx
# 创建本地目录用于存储配置和网站文件
mkdir -p ~/nginx-docker/{conf,html,logs}
# 复制默认配置到本地目录
sudo docker run --name tmp-nginx -d nginx
sudo docker cp tmp-nginx:/etc/nginx/nginx.conf ~/nginx-docker/conf/
sudo docker cp tmp-nginx:/etc/nginx/conf.d ~/nginx-docker/conf/
sudo docker rm -f tmp-nginx
# 运行带持久化卷的容器
sudo docker run --name mynginx \
-p 80:80 \
-v ~/nginx-docker/html:/usr/share/nginx/html \
-v ~/nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/nginx-docker/conf/conf.d:/etc/nginx/conf.d \
-v ~/nginx-docker/logs:/var/log/nginx \
-d nginx
sudo docker ps
应该能看到 mynginx 容器正在运行。
在浏览器中访问 http://localhost
或服务器的 IP 地址,应该能看到 NGINX 欢迎页面。
echo "<h1>Welcome to My NGINX Server</h1>" > ~/nginx-docker/html/index.html
sudo docker exec mynginx nginx -s reload
现在刷新浏览器,应该能看到自定义的内容。
sudo docker stop mynginx
sudo docker start mynginx
sudo docker restart mynginx
sudo docker exec -it mynginx bash
sudo docker logs mynginx
sudo docker update --restart unless-stopped mynginx
如果 80 端口已被占用,可以改用其他端口:
sudo docker run --name mynginx -p 8080:80 -d nginx
如果遇到权限问题,可以尝试:
sudo chmod -R 755 ~/nginx-docker
检查 NGINX 配置:
sudo docker exec mynginx nginx -t
通过以上步骤,您已经成功在 Ubuntu 上使用 Docker 部署了 NGINX 服务器,并可以开始托管您的网站内容。