使用Docker部署其他的程序 (创建一个运行 Nginx 的 Docker 容器)

要创建一个运行 Nginx 的 Docker 容器,通常使用 docker run 命令。下面是创建 Nginx 容器的基本步骤和常用选项:

1. 运行 Nginx 容器(默认设置)

这个命令会从 Docker Hub 上拉取官方的 Nginx 镜像(如果没有本地镜像的话),并启动一个新的容器。

bash复制代码docker run --name nginx-container -d -p 80:80 nginx
解释:
  • --name nginx-container:指定容器的名称为 nginx-container

  • -d:让容器在后台运行(detached mode)。

  • -p 80:80:将容器的 80 端口映射到宿主机的 80 端口,使你能够通过浏览器访问。

  • nginx:指定使用的镜像名称,这里是官方的 nginx 镜像。

2. 映射自定义的主机端口

如果你希望将容器的 80 端口映射到宿主机的其他端口(例如 8080),可以使用如下命令:

bash复制代码docker run --name nginx-container -d -p 8080:80 nginx

这样你就可以通过 http://<宿主机IP>:8080 来访问 Nginx 服务。

3. 挂载自定义配置文件

如果你想使用自己的 Nginx 配置文件,可以通过 -v 选项将本地的配置文件挂载到容器中。例如,将本地的 /path/to/nginx.conf 配置文件挂载到容器中的 /etc/nginx/nginx.conf

bash复制代码docker run --name nginx-container -d -p 80:80 -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx

4. 挂载静态网页文件

如果你有静态网页文件想要提供给 Nginx,可以使用 -v 挂载本地目录到容器中。例如,如果网页文件在 /path/to/html 目录下,可以这样运行:

bash复制代码docker run --name nginx-container -d -p 80:80 -v /path/to/html:/usr/share/nginx/html nginx

这样,Nginx 将提供 /path/to/html 目录下的静态文件。

5. 设置环境变量

如果你需要设置一些 Nginx 的环境变量,可以通过 -e 选项来设置。例如:

bash复制代码docker run --name nginx-container -d -p 80:80 -e NGINX_HOST=example.com -e NGINX_PORT=80 nginx

6. 查看容器日志

运行容器后,你可以查看 Nginx 容器的日志来调试或查看运行状态:

bash复制代码docker logs nginx-container

7. 进入容器内部

如果你需要进入容器内部进行调试,可以使用 docker exec 命令:

bash复制代码docker exec -it nginx-container bash

这会进入容器的 shell,允许你查看 Nginx 配置、日志文件等。

8. 停止和删除容器

如果你想停止容器并删除它,可以使用以下命令:

  • 停止容器:

    bash复制代码docker stop nginx-container
  • 删除容器:

    bash复制代码docker rm nginx-container
docker中的容器只给了运行必备的系统函数库和依赖
因此ll vi 命令无法使用 在容器内修改文件非常困难那么就通过数据卷将容器中的内容和宿主机绑定,通过宿主机操作容器内的文件


数据卷的介绍和使用(volume)其实就类似虚拟机和windows主机的关系

常用的volume命令
命令说明
docker volume create创建数据卷
docker volume ls查看所有数据卷
docker volume rm删除指定数据卷
docker volume inspect查看某个数据卷的详情
docker volume prune清除数据卷

创建容器的时候配置上 卷 使用 -v参数

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx

如何查看创建的nginx卷 ?

docker volume ls

查看卷挂在到宿主机的哪个位置?

 docker volume inspect html
[
    {
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/html/_data", 挂载的目录位置
        "Name": "html",
        "Options": {},
        "Scope": "local"
    }
]
这个就是卷在宿主机的位置 cd /var/lib/docker/volumes/html/_data 可以cd进去在宿主机内修改

bind mountvolume 的区别总结:

特性Bind MountVolume
存储位置直接映射宿主机的文件或目录Docker 管理的存储,不依赖于宿主机
数据持久化宿主机删除文件或目录会删除挂载数据数据独立于宿主机,容器删除后数据不丢失
适用场景开发环境、需要共享宿主机文件的场景持久化数据、多个容器共享数据、需要备份和迁移的场景
易用性需要手动指定宿主机路径Docker 自动管理,可以通过命令轻松创建和管理
实时同步宿主机和容器实时同步容器可以修改 volume 内容,但宿主机路径不可直接访问(除非通过挂载)

总结:

  • Bind mount 更适用于开发场景,方便共享宿主机的文件或目录,实时同步数据。

  • Volume 更适用于生产环境,特别是当你需要持久化数据或者多个容器共享数据时。它也更易于管理和备份。

根据你的应用场景选择合适的挂载方式。如果你需要在宿主机和容器之间频繁共享配置文件或代码,bind mount 是合适的选择。如果你需要持久化数据库数据或跨多个容器共享存储,volume 更合适


在docker容器中部署minio

docker run -p 9000:9000 -p 90

 docker run -p 9000:9000 -p 9001:9001 minio/minio server /mnt/docker/data --console-address ":9001"
​
在这个命令中:
  • -p 9000:9000-p 9001:9001 是将容器的端口映射到主机的端口。

  • server /mnt/docker/data 指定 MinIO 使用 /mnt/docker/data 作为数据存储目录。

  • --console-address ":9001" 设置 MinIO 控制台的监听地址为 :9001,即监听在主机的 9001 端口。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值