首页 > 其他分享 >Docker搭建lnmp之network篇

Docker搭建lnmp之network篇

时间:2023-08-19 17:24:17浏览次数:50  
标签:容器 network vagrant lnmp nginx conf Docker docker

docker pull nginx #拉去最新的nginx镜像

一、搭建vagrant+VagrantBox VM环境

创建Vagrantfile文件
vagrant init
编辑Vagrantfile文件
Vagrant.configure("2") do |config|
  config.vm.box = "centos7"                                           #指定BOX
  config.vm.network "private_network", ip: "192.168.33.55"            #指定本地网络连接地址  默认192.168.33.10
  config.vm.synced_folder "D:/phpstudy_pro/WWW", "/www"               #本地phpstudy_pro/WWW映射到虚拟机www
  config.vm.synced_folder "D:/phpstudy_pro/daocker_my/conf", "/conf"  #本地daocker_my/conf映射到虚拟机conf
  config.vbguest.installer_options = { allow_kernel_upgrade: true }   #允许自动升级宿主机的内核版本

end
安装启动VM
vagrant up
配置ssh Xshell连接
DuiZhan010@DESKTOP-6QFBQP0 MINGW64 /d/Vagrant VMs/docker
$ vagrant ssh                                      #vagrant ssh 连接VM
Last login: Fri Aug 18 08:51:46 2023 from 10.0.2.2
[vagrant@localhost ~]$ su                          #切换到管理员 默认密码:vagrant 
Password:
[root@localhost vagrant]# vi /etc/ssh/sshd_config  #编辑ssh配置 允许使用密码连接  PasswordAuthentication yes  
[root@localhost vagrant]# service sshd restart     #重启sshd服务
Redirecting to /bin/systemctl restart sshd.service
[root@localhost vagrant]#

二、安装docker

三、搭建lnmp

前言
挂载卷(Volume | -v)

  如果挂载的目录中有文件或文件夹,那么这些文件或文件夹将被隐藏起来,直到你卸载挂载卷。在容器中进行的任何更改都只会反映在挂载卷中,不会影响到原本主机上的文件。换句话说,容器只能访问挂载卷中的文件,而无法看到或修改主机上原有的文件。需要注意的是,对于非空目录的挂载,在卸载挂载卷后,原本存在于该目录中的文件会重新显示出来。因此,在选择将挂载卷挂载到非空目录时,确保你不会意外覆盖或删除重要的数据。

1、自定义网络
[root@localhost conf]# docker network ls         #查看当前的网络
NETWORK ID     NAME      DRIVER    SCOPE
5d39126ca323   bridge    bridge    local
85197103d371   host      host      local
78a099b4f44c   none      null      local
[root@localhost conf]# docker network --help     #查看当前的网络

Usage:  docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network                       #容器连接网络
  create      Create a network                                       #创建网络
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks   #查看网络信息
  ls          List networks                                          #查看当前网络
  prune       Remove all unused networks                             #清除没有正常连接容器的网络
  rm          Remove one or more networks                            #删除指定网络

Run 'docker network COMMAND --help' for more information on a command.
[root@localhost conf]# docker network create -d bridge lnmp          #创建一个名为lnmp桥接(bridge)类型的网络
3d0d7a1a021ff18e27673cfaf00dbf11cf2f146f297f1775f1c5e34cf23216dc
[root@localhost conf]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
5d39126ca323   bridge    bridge    local
85197103d371   host      host      local
3d0d7a1a021f   lnmp      bridge    local
78a099b4f44c   none      null      local
2、nginx
#步骤1:拷贝nginx配置文件

#创建nginx配置文件夹
mkdir -p /conf/nginx  
#拉取最新nginx镜像
docker pull nginx
#创建ngin0容器用于拷贝出nginx配置文件
docker run -itd --name nginx0 nginx /bin/bash 
#nginx容器主配置文件拷贝到宿主机/conf/nginx中 
docker cp nginx0:/etc/nginx/nginx.conf  /conf/nginx/nginx.conf   
#nginx子配置文件夹,拷贝到宿主机/conf/nginx中 default.conf
docker cp nginx0:/etc/nginx/conf.d  /conf/nginx   
#停止nginx0容器
docker stop nginx0  
 #删除nginx0容器 我们只是要拷贝出nginx配置文件
docker rm nginx0                                       

#步骤2:创建lnmp中的nginx容器

#以nginx最新镜像创建my-nginx容器 。-i 交互式操作;-t 终端;-d 后台运行;--name指定名字;--network 指定网络;-v 分别把主配置文件和子配置文件夹挂载容器内
docker run -itd --name my-nginx --network lnmp -p 8080:80 -v /conf/nginx/nginx.conf:/etc/nginx/nginx.conf -v /conf/ngin/conf.d:/etc/ngin/conf.d nginx /bin/bash
#创建测试文件夹 主配置文件nginx.conf添加一行注释用于测试
mkdir -p /conf/nginx/conf.d/test 
#查看容器配置详情(目录挂载情况)
docker inspect my-nginx
#容器配置详情docker inspect my-nginx
[
    {
        #..............
        "Mounts": [
            {
                "Type": "bind",
                "Source": "/conf/nginx/nginx.conf",
                "Destination": "/etc/nginx/nginx.conf",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "bind",
                "Source": "/conf/nginx/conf.d",
                "Destination": "/etc/nginx/conf.d",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        #..............
    }
]

#进入my-nginx容器查看是否有测试文件主配置有没有加上注释
docker exec -it my-nginx /bin/bash
cd /etc/ngin
cat nginx.conf
cd conf.d
ls -l

 

标签:容器,network,vagrant,lnmp,nginx,conf,Docker,docker
From: https://www.cnblogs.com/dagger24/p/17642725.html

相关文章

  • 应用部署,dockerfile
    目录1容器操作2应用部署2.1mysql部署2.2redis2.3nginx3迁移与备份4Dockerfile#1docker启动,停止,查看状态命令 systemctlstartdockersystemctlstopdockersystemctlstatusdockerdockerinfo#查看详情systemctlenabledocker#开机自启动......
  • 云原生之使用Docker部署开源Leanote蚂蚁笔记
    (云原生之使用Docker部署开源Leanote蚂蚁笔记)一、Leanote蚂蚁笔记介绍1.Leanote简介Leanote蚂蚁笔记是一款云笔记工具,蚂蚁笔记(又名LeaNote)就是一款国产开源的私有云笔记软件。它支持普通格式笔记、Markdown语法、专业数学公式编辑、和思维脑图,常见的笔记相关功能它都拥有,同时......
  • 如何发布一个镜像到私有的docker仓库
    1拉取dockerregistry镜像我们先启动docker服务,然后使用docKerpullregistry拉取一个镜像到本地。2看看这个镜像多大3启动registry启动registry实际上就是启动一个容器,这个registry其实和hub.docker.com是一样的功能,只不过这个私有的registry是供给公司内部使用,不对外访问罢了。使......
  • docker commit本地镜像发布至阿里云服务器
    一、镜像构成docker镜像文件是一层一层构建好的dokerpulltomcat拉取镜像时会发现docker镜像时一层层的下载dockerhistorytomcat 可以查看镜像构建的历史信息二、UnionFS文件系统UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件......
  • docker方式部署 uvicorn python项目
    uvicorn项目接触比较少,写dockerfile编译后,启动一直报错重启,尤其是最后写ENTRYPOINT启动命令,改了很多次,特地记录下。以下为正确的dockerfile文件FROMpython:latestRUNpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplefastapi[all]RUNpipinstall-ihttps://p......
  • kafka——命令备份——docker 启动
    dockerrun-d\--namezookeeper\-p2181:2181\-eZOOKEEPER_CLIENT_PORT=2181\confluentinc/cp-zookeeperdockerrun-d\--namekafka\-p9092:9092\-eKAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.100:9092\......
  • 在 docker 中设置容器自动启动---九五小庞
    1、使用dockerrun命令运行时增加--restart=always参数即可2、使用docker-compose命令运行时在yml文件中,需要自启动的service下增加restart:always项目即可3、已运行的容器修改其自启动策略执行命令:dockerupdate--restart=always容器名或容器IDdockercon......
  • 在 docker 中设置容器自动启动--九五小庞
    1、使用dockerrun命令运行时增加--restart=always参数即可2、使用docker-compose命令运行时在yml文件中,需要自启动的service下增加restart:always项目即可3、已运行的容器修改其自启动策略执行命令:dockerupdate--restart=always容器名或容器IDdockercon......
  • Docker碎碎念
    docker和虚拟机的区别虚拟机(VM)是通过在物理硬件上运行一个完整的操作系统来实现的。每个虚拟机都有自己的内核、设备驱动程序和用户空间,它们是相互独立且完全隔离的。虚拟机可以在不同的物理服务器之间迁移,因为它们是以整个操作系统作为单元进行迁移的。而容器则是在单个操作......
  • 安装docker配置阿里云镜像
    使用docker之前需要先了解dockerdocker的基本组成镜像(image):Docker镜像就是一个只读的模板。镜像可以用来创建Docker容器,一个镜像可以创建很多容器。容器(container):Docker利用容器独立运行一个或一组应用。容器是用镜像创建的运行实例。仓库(Repository):仓库是集中存放镜像文件的......