Docker中安装Nginx部署网页服务-过程

基础命令

拉取nginx镜像

docker pull nginx

当然,我们这里可以先执行语句docker search nginx查询一下nginx镜像版本,然后指定版本,上面是直接默认最新

启动nginx镜像

docker run --name nginx-test -p 81:80 -d nginx

下面是对上面的一些解释
--name nginx-test:容器名称
-d 后台运行
-p 宿主机端口:容器端口 #开放容器端口到宿主机端口
这样子就可以直接访问http://Docker宿主机ip:81即可
当然,宿主机端口可以指定为80

常用命令

docker search  name 查询镜像
docker pull name 安装name镜像
docker images  查看已经拉取的镜像
docker ps  查看正在运行中的容器 
docker ps -a 查看正在运行中的容器,包括未运行的
docker rm 容器ID 删除某一容器 //停止容器--》删除容器--》删除镜像
docker rmi 镜像ID  删除某一个镜像
systemctl start docker 启动docker
systemctl stop docker 停止docker
systemctl restart docker 重启docker

删除容器

以nginx为例,若是我们已经启动nginx

停止正在运行的容器

docker ps #找到正在运行的容器,当然也可以直接docker ps|grep nginx找到最精确的
docker stop name #根据容器名称停止(当然也可以是id)

删除所有nginx的容器,运行的和未运行的

docker ps -a #查出所有运行的和未运行的容器
docker rm 容器id

若是没有先停止会报如下错误

Error response from daemon: You cannot remove a running container 420d9c5a934853c264d8bc52f8cb3bd27379d269898182aa13d2c366409d7037. Stop the container before attempting removal or force remove

删除nginx镜像

docker images #先查询出容器
docker rmi 镜像id #注意相比容器多了一个i

到此,就删除nginx镜像成功啦,当然也可以只删除容器,不删除镜像

容器停止,启动,重启

命令作用
docker stop 容器名称/容器ID通过docker ps 查看正在运行的容器,可以通过该命令直接停止该容器
docker start 容器名称/容器ID通过docker ps -a 命令查看所有容器,可以通过该命令启动该容器:如果用run的话会新建一个新的容器
docker restart 容器名称/容器ID通过docker ps -a 命令查看所有容器,可以通过该命令重启容器

其实,以nginx为例,流程是这样子的:拉取镜像后,用run启动容器,此时会新建一个容器,后面就不需要再新建了,直接用stop/start停止启动容器即可


查看运行后nginx的id

docker ps

进入镜像 

docker exec -it fd204bcb5cd0 bash

查找nginx的默认配置文件 

cd etc/nginx/conf.d/
ls

nginx的默认配置文件:default.conf

查看配置文件,确认nginx的root目录 

从图片可以看到root目录:/usr/share/nginx/html
这个目录则是容器的目标目录,接下来需要将待部署的资源通过docker命令拷贝到该文件目录下。

cat default.conf

 退出容器

exit

拷贝文件

拷贝待部署的文件到nginx容器的root目录下

docker cp {源文件/目录} {容器ID}:{容器目的地址}
----------------------------------------------------
docker cp css fd204bcb5cd0:/usr/share/nginx/html/
docker cp js fd204bcb5cd0:/usr/share/nginx/html/
docker cp index.html fd204bcb5cd0:/usr/share/nginx/html/

docker cp命令类似于UNIX中的cp -a命令,递归复制目录下的所有子目录和文件 

注:也可以通过映射的方式将docker中的nginx目录映射到资源服务器上

 完成后直接访问

http://{ip}:{port}/index.html

posted @   JackieDYH  阅读(56)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示