Featured image of post Docker的基本原理和使用

Docker的基本原理和使用

以Nginx为例

华为云的体验实在是糟糕,实在用不下去了,换成腾讯云。腾讯云直接买的 docker 基础镜像,省的配环境了。鉴于我也是第一次用 docker,所以记录一下我的学习成果

Docker 是什么,有什么用

docker最大的功用就是可以让应用跑在一个独立的环境中,你不需要考虑系统、依赖等问题,通过拉取镜像Image,你可以把应用连带着它运行的依赖一起在你的设备上跑起来。

如何使用 Docker

直接拉 Nginx:

1
docker pull nginx

等同于:

1
docker pull nginx:latest

后面是对应版本,直接在 dockerhub 上面找就行

然后就直接跑起来:

1
docker run --name nginx -p 80:80 -d nginx

此时就可以在腾讯云的容器管理界面看到容器已经在运行了

正常运行中

然后我们就可以访问到页面了,和直接部署 nginx 并没有太大区别,但是我们要想让自己的网站挂载,就要做文件目录的映射了

先使用

1
docker cp nginx:/etc/nginx/nginx.conf /etc/nginx/nginx.conf

将 nginx 的配置文件导出,前为外部路径,后为容器内部路径

可以输入

1
docker exec -it nginx bash

进入容器,随后的操作和正常操作 Linux 是一样的,定位一下自己的 nginx 配置文件是否在默认位置。

删除容器后重新创建容器:

1
docker run --name mynginx -v /usr/share/nginx/html:/usr/share/nginx/html:ro -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -p 80:80 -d nginx

这里具体解释下各参数的意思:

--name 创建出的容器的名称

-v 前为主机内的数据路径,后为容器内的数据路径。这里将外部的网页路径也就是网站的根目录以及外部修改后的 nginx 配置文件映射到内部。

-p 80:80 将容器内部的 80 端口(后)映射到主机的 80 端口(前)

-d 容器在后台运行

此时我们就可以正常显示网站了,同时在腾讯云的容器管理界面也可以看到正常运行的提示

如果有报错就使用

1
docker logs <container-name>

来显示对应容器的运行日志来解决即可。

Built with Hugo
主题 StackJimmy 设计