docker容器中布置静态网站(基于云服务器ubuntu系统)
- 服务器准备(ubuntu)
- docker
- nginx
- 静态网页制作
- 浏览器测试
服务器布置
这里推荐使用云服务器(阿里云、华为云、腾讯云)可以免费使用几天。在我们买了服务器后会遇到如下问题:
本地电脑ping服务器主机发现ping不通,请求超时
我们需要在管理服务器的界面找到安全组那一栏,然后在安全组出入都要加入icmp这个,建议直接一键添加所有。
然后我们在本地电脑就可以ping通服务器了。
docker安装
在布置好云服务器后,我们使用apt-get update, apt-get upgrade
更新信息。
然后,我们输入docker
,出现如下错误:
接着,我们按照通常的按照软件的方法apt-get install docker.io, apt-get install docker.ce
,发现出现以下问题
Package 'docker-ce' has no installation candidate
处理办法如下:
#添加docker源
sudo echo "deb https://download.docker.com/linux/ubuntu zesty edge" > /etc/apt/sources.list.d/docker.list
#支持解析https
apt-get install -y apt-transport-https ca-certificates curl software-properties-common
#添加GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#设置存储库位置
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
然后我们再执行就可以得到下面的结果了
接着就是验证安装结果了,输入docker run hello-world
nginx安装
接下来就是安装nginx了,常规操作apt-get install nginx
接下来就是查看安装效果了,输入命令service start nginx
,然后浏览器输入服务器外网ip地址就可以看到nginx默认的界面了。这里会出现一些问题:
1.
问题:nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
解决办法:netstat -ntlp | grep 80
查看
然后输入service nginx stop
,再次查看就没有了
问题:nginx: [emerg] "server" directive is not allowed here in /etc/nginx/nginx.conf:86
解决办法
vim /etc/nginx/nginx.conf
将添加的
server {
....
}
放到
http {
...
}
就可以解决了
静态网页制作
首先:mkdir -p /var/www/html
然后 cd到目录,接着执行vim index.html
html中的内容自己定义
然后保存退出,然后修改配置文件中默认的index.html路径,如下
然后重启nginx,service nginx restart
浏览器测试
最后,我们启动docker容器的镜像就可以了,如下
最后就是查看效果了,浏览器输入地址和端口号就可以了