2026/1/3 13:10:33
网站建设
项目流程
门户网站改版建议,线上推广方式有哪几种,申请一个app多少钱,电商网站的流程图目录
docker
1、概念
2、docker启动nginx
1、基本流程
2、下载nginx
3、启动容器
4、docker run 详解
5、修改nginx页面
6、保存镜像
7、镜像分享到社区
8、总结
3、docker存储与Nginx页面挂载
1、目录挂载
2、卷映射
总结
4、docker网络
5、redis主从同步集群…目录docker1、概念2、docker启动nginx1、基本流程2、下载nginx3、启动容器4、docker run 详解5、修改nginx页面6、保存镜像7、镜像分享到社区8、总结3、docker存储与Nginx页面挂载1、目录挂载2、卷映射总结4、docker网络5、redis主从同步集群docker1、概念1、运行docker pull redis命令会发给docker主机主机获取下载这个软件镜像到本地-----》运行docker run redis docker主机会先查看是否有这个镜像没有则下载有则放入容器中运行。2、使用 docker build my就会制作名为my的镜像 -----》使用docker push my就会把my的镜像放到镜像仓库上3、容器安装容器的运行时环境利用容器启动一个个应用每个应用运行在自己的容器内部每个容器都包含这个应用运行的完整环境且容器相互隔离。简单理解容器就是轻量的虚拟机技术共享操作系统内核2、docker启动nginx1、基本流程2、下载nginxdocker search nginx # 查看是否有镜像 docker pull nginx # 获取镜像 docker images # 查看系统的镜像 docker pull nginx:版本 # 下载指定版本nginx docker rmi 镜像名:版本|镜像id # 删除镜像3、启动容器1、每一个容器都代表一个运行中的应用2、启动nginx应用docker run [选项] 镜像名 [启动命令] [启动参数] docker run nginx # 启动nginx docker run nginx # 启动nginx3、查看运行中的容器docker ps docker ps -a # 查看所有容器包括停止的, 查看容器名字4、启动容器docker start 容器名 | 容器id5、停止容器docker stop 容器名 | 容器 id6、查看容器状态docker stats 容器id | 容器名7、查看容器日志docker logs 容器id | 容器名8、删除容器, 但删除前需要先停止容器运行docker rm 容器id4、docker run 详解1、先删除之前启动的容器 docker rm -f 容器id2、每个容器启动时都运行在自己的空间内互相隔离。需要给容器做一个映射。例如图中把88端口对应到容器内的80端口上而容器内的nginx运行在80端口。由此我们可以访问容器内部的nginx。(每个容器就是一个小虚拟机)2、启动命令docker run -d(后台启动) --name 容器名给这个容器起名字 -p 主机端口:容器端口 (设置主机端口和容器端口的映射) 镜像名5、修改nginx页面1、使用docker exec 进入到装了nginx的容器里容器里有一个文件路径 /usr/share/nginx/html, 存放着nginx的默认页面。nginx的镜像里有官方文档可供查阅2、进入docker交互模式docker exec -it(启动交互模式) 容器名 | id /bin/bash使用控制台模式交互 # 进入容器内部3、容器内部基本就是一个linux系统linux系统命令在这里也可以使用4、进入nginx页面存放位置cd /usr/share/nginx/html # 进入Nginx页面5、可以使用 echo 文本内容 index.html 来尝试着修改默认页面echo 文本内容 index.html # 直接修改Nginx页面6、exit # 退出容器exit # 退出容器6、保存镜像1、提交镜像docker commit -m 提交信息 容器名 镜像名 #把运行中的容器变成镜像2、把镜像保存成文件docker save -o 文件名.tar(把镜像写出成tar文件) 镜像名3、使用别人的本地镜像文件docker load -i 镜像压缩包路径 # 加载镜像后使用 docker run 命令就可以运行镜像成容器7、镜像分享到社区1、登录网站docker login # 之后按照提示输入用户名密码就行2、对镜像进行改名docker tag 原来的镜像 用户名/新的镜像名:tag标签。 # 例如docker tag my-nginx-service:v1.0 username/nginx-service:latest3、镜像改名后推送镜像docker push 更改后的镜像名 # 推送镜像8、总结3、docker存储与Nginx页面挂载1、目录挂载1、正常情况下容器内部数据修改麻烦容易丢失2、docker的目录挂载指定外部主机的一个文件夹A告诉容器这个文件夹A就是容器内的文件B。需要在docker run 运行容器时使用-v 外部路径:容器内部路径选项3、目录挂载是将宿主机上一个你非常熟悉的具体目录路径直接映射到容器内的一个目录。两边操作的是同一份文件。docker run -d(后台启动) --name 容器名给这个容器起名字 -p 主机端口:容器端口 (设置主机端口和容器端口的映射) -v 外部路径:容器内部路径 镜像名2、卷映射1、在docker run中使用 -v选项时使用 -v ngconf(卷名):/etc/nginx 可以读取配置文件。这个目录放在主机的/var/lib/docker/volumes/容器名里面有配置文件修改那里面的配置文件可以同步改变容器内nginx的配置。2、使用卷映射后 cd /var/lib/docker/volumes/ngconf/data.容器里边的/etc/nginx的内容被放到了这个目录下3、目录挂载初始启动外部目录有什么容器里面就有什么卷映射 初始启动容器内部有什么外部就有什么。外部的修改会实时同步到容器内部且外部目录位置固定4、卷挂载是由Docker创建和管理的存储空间。你可以把它想象成一块由Docker分配的“U盘”你只需要给它起个名字然后挂载到容器里即可不需要关心它在宿主机上的具体路径。4、# 创建一个名为“my-website”的卷 docker volume create my-website # 启动容器并挂载卷 docker run -d --name my-nginx-with-volume -p 8080:80 -v my-website:/usr/share/nginx/html nginx docker volume ls # 列出所有的卷 docker volume inspect 卷名 # 查看卷的详细信息5、如果卷是空的Docker会自动将容器内部目标目录的原始内容复制到卷中。这确保了应用能正常启动。你可以通过docker volume inspect my-website命令查看这个卷在宿主机上的真实存储路径但通常不需要直接操作它。删除容器后my-website这个卷和数据依然存在。下次新启动一个容器并挂载同一个卷数据就会恢复。总结假设外部主机目录为A容器内部目标目录为B1、使用目录挂载A的内容直接覆盖B。对A的修改同步修改B。容器迁移后必须创建相同路径的A才能正常使用。适用于开发时2、使用卷挂载当一个新创建的、空的卷挂载到容器目录B时Docker会先将B目录里的原始内容来自镜像复制到卷中然后容器再启动。适用于开发完成需要迁移或数据备份时。4、docker网络1、每个容器启动时都会加入一个docker的默认网络叫docker0。2、每个启动的容器相当于连接在这个网络里的虚拟机docker会为每个容器分配ip3、命令docker container inspect 容器名 # 查看这个容器的具体状态4、容器内部可以通过这个虚拟网络互相访问5、docker为每个容器分配唯一ip使用容器ip 容器端口可以互相访问6、ip可能会变化包括内部的。因此我们需要创建自定义网络容器名就是域名使用域名来访问对方的服务。7、docker network create 网络名 # 创建一个自己的网络 docker network ls # 列举出网络 docker run -d(后台启动) --name 容器名给这个容器起名字 --network 网络名这个容器要加入的网络 -p 主机端口:容器端口 (设置主机端口和容器端口的映射) -v 外部路径:容器内部路径 -v 卷名:容器内部配置文件路径卷映射同步更改配置文件 镜像名8、在容器内部可以通过 http://容器名:容器端口 访问另一个容器5、redis主从同步集群1、概念1、redis1主机负责写请求redis2主机负责读请求。2、两个容器需要放入到同一个网络3、同时保存redis数据的目录可以挂载到机器外边4、同时需要手动设置两个redis同步5、redis1设置复制模式为master同时设置访问密码6、redis2设置同步模式为slave下属设置主机的地址容器内部自定义网络容器名即为域名设置主机容器内部的端口设置访问master的密码设置自己的密码。7、推荐使用比特纳米的redis镜像已经配置好了集群设置。官方的没有。我们只需要按照说明设置环境变量就行8、具体的命令如下