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