简单的尝试一下使用docker部署nginx服务(水文章😄)
一、Docker下载
运行命令:
1 | wget -qO- https://get.docker.com/ | sh |
这个命令会去运行https://get.docker.com/上的一个自动安装docker的shell脚本,只需要静待就可以了。安装完成后可以使用命令docker --version
查看当前docker版本。同时可以使用docker system info
查看docker的状态,如果Client和Server都正常显示数据则docker正常运行。初次安装之后可能会出现错误提示:ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
。重启docker服务即可解决:service docker restart
二、nginx容器化
1 | docker container run -d -p 4000:80 --rm --name mynginx nginx |
-d表示后台运行,-p 4000:80表示将容器的80端口映射到宿主机的4000端口,–rm表示在容器停止后自动删除容器(如果没有这个参数需要在docker container stop
之后手动docker container rm
),–name mynginx设置容器名称为mynginx,最后的nginx表示使用docker官方的nginx镜像进行部署。
第一次部署可能会比较久,因为需要去docker.io上下载镜像,之后部署会发生缓存命中,几乎是瞬间完成。
此处部署有可能会遇到一个奇怪的问题:
1 | kernel:unregister_netdevice: waiting for lo to become free. Usage count = 1 |
更新一下软件包(Centos下为yum -y update,ubuntu下为apt update)即可解决。
三、配置文件及网页文件映射
实际上,我在宿主机上已经运行有nginx服务,并且驱动了/usr/local/workspace/myblog/public
下的index.html,所以网页文件只需要映射该目录即可:
1 | docker container run --rm --name mynginx --volume "/usr/local/workspace/myblog/public/":/usr/share/nginx/html -p 4000:80 -d nginx |
–volume这一段表示将容器中/usr/share/nginx/html这部分卷映射到本地的目录下,类似于创建链接文件。
映射配置文件同理:
1 | docker container run --rm --name mynginx --volume "/usr/local/workspace/myblog/public/":/usr/share/nginx/html --volume "/etc/nginx":/etc/nginx -p 4000:80 -d nginx |
此处要注意查看宿主机与容器中的配置文件目录结构包括文件结构是否相同,个人使用的配置无法这样传入,因为宿主机中/etc/nginx/conf.d
下的default.conf文件貌似被我弄没了,宿主机中主要的配置文件为nginx.conf,而容器中主要的配置文件是default.conf,所以无法通用。可以将容器中的配置文件拷贝到宿主机中修改后再映射,拷贝命令:
1 | docker container cp mynginx:/etc/nginx . |
最后的.
表示拷贝到当前目录下。
写在最后
单个应用的话,感觉可以没必要用docker,用了docker之后小水管服务器的硬件IO突然就多了起来😂,不过docker本来的应用场景也不是单应用,只是部署一下学一下操作而已。
参考资料
发布时间: 2021-06-09
最后更新: 2024-05-12
本文标题: 第一次尝试使用Docker
本文链接: https://cloudflare.luhawxem.com/2021/06/08/TheFirstTimeTringDocker/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!