编程入门(九)【linux系统下docker的部署与发布网站】
木道寻 2024-07-25 09:07:03 阅读 64
读者大大们好呀!!!☀️☀️☀️
👀期待大大的关注哦❗️❗️❗️
🚀欢迎收看我的主页文章➡️木道寻的主页
文章目录
🔥前言🚀什么是docker?🚀docker三要素🚀linux系统下docker的基本命令🚀docker实例:lamp部署网站docker数据卷项目数据卷的概念数据集的基本操作
lamp镜像实现论坛部署操作步骤
⭐️⭐️⭐️总结
🔥前言
当我们学习一门知识时,都会涉及到哲学三问:(我是谁?)什么是docker?(我为什么在这里?)为何要有docker?(我要去哪里?)docker要做什么?本篇将带你一起解答这些问题。
🚀什么是docker?
docker :应用容器引擎,产出各种容器(相当于小Linux)
为什么要有docker呢?
在传统的网站部署时,一个Linux服务器,部署一个web网站:如下图所示
这种模式下有很多弊端:
1、需要大量的服务器
2、启动速度慢
3、开发、测试、运维环境不一致,导致的bug可能因环境不一致引起
因此docker就运营而生了,只需要一台Linux服务器
docker要做什么呢?拿到源代码,在不同环境中发布网站
一个web网站需要什么?web服务需要:
1、接收客户端数据
2、连接数据库
3、调度开发网页
🚀docker三要素
1️⃣ 仓库 – repository ----网站docker提供各种镜像
命令:
<code>docker search 镜像名字 在仓库查找
docker pull 镜像名字
下载镜像
docker run 镜像名字
执行镜像,没有镜像会自动下载
2️⃣镜像–images -----文件----》产生容器
对比传统的服务,比如lamp服务,NGINX服务,mysql服务等产生,对应的就是docker中的lamp镜像,MySQL镜像 ----》docker的镜像强调复制出大量的容器,镜像与容器是是一对多的关系。
3️⃣容器----container ----进程-----运行开发的代码与编程网站
镜像(Image)和 容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。
容器内的进程是运行在一个隔离的环境里的,就像独立于宿主机的另一台机器。
所有容器的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录。
🚀linux系统下docker的基本命令
前期准备
1、linux | docker软件
curl -fsSL https://get.docker.com/ | sh
2、web服务(lamp/nginx/tomcat/php-apache)+数据库服务
拉取镜像
<code>docker pull php
在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果想预先下载这个镜像,可以使用这个命令。不指定版本, 会获取latest 镜像。
<code>docker pull 镜像名:版本号
拉取指定版本的镜像
除了在有网的环境下进行镜像的拉取,还可以在离线的条件下预先下载了镜像文件
docker save 镜像tar包
1、导入镜像
<code>docker load < 文件地址
其中image ID:为镜像的唯一编号,可以为其取别名,便于识别使用
先用<code>docker images 命令查看镜像。再根据编号取别名:
再输入下列命令:
<code>docker tag 前四位编号 别名(:描述)括号中如果没有描述则为默认latest版本
2、启动容器
命令:<code>docker run -d 镜像别名
-d 守护,后台运行。
每执行一次就会创建一个容器!!!
3、查看容器状态
命令:<code>docker ps -a
4、进入容器
命令:<code>docker exec -it 容器id /bin/bash
5、退出容器
快捷键Ctrl+p再Ctrl+q
6、停止容器
命令:<code>docker container stop 容器id
7、重启容器
命令:<code>docker container start 容器id(启动容器)
docker container restart 容器id
(终止容器运行,再启动)
8、删除容器
命令:docker container rm 容器ID(只能删除已经停止的容器)
9、docker 命令帮助
<code>docker command --help
🚀docker实例:lamp部署网站
docker数据卷项目
数据卷的概念
数据卷,是一个可供一个或多个容器使用的特殊目录,特性有:
1️⃣数据卷可以在容器之间共享和重用
2️⃣对数据卷的修改会立马生效
3️⃣对数据卷的更新,不会影响镜像
4️⃣数据卷被设计用来持久化数据的,她的生命周期独立于容器
数据集的基本操作
创建数据卷
<code>docker volume create 数据卷名
查看数据卷信息
<code>docker volume inspect 数据卷名
查看所有的数据卷
<code>docker volume ls
删除数据卷
<code>docker volume rm 数据卷名
清理无主的数据卷
先创建几个数据卷,再进行清理
<code>docker volume prune
挂载volume数据卷(此操作在下面部署时展示)
<code>docker run -d -p 宿主机端口:容器内端口 -v 数据卷名:容器内路径 镜像名
lamp镜像实现论坛部署
根据lamp镜像构建网站的基础环境
操作步骤
环境解释:lamp----->Linux、Apache、mysql、PHP
命令执行:
1、准备需要的镜像
docker load < /home/centos-lamp.tar
docker images
docker tag 0b8d mdxcentos-lamp
2、当前目录中,新建一个lamp目录
<code>mkdir lamp
3、将源码压缩包拷贝到lamp目录下,并解压
cp 源码压缩包位置 lamp
cd lamp
unzip 压缩包名
4、建立lamp项目需要的数据卷,并查看数据卷的存放路径
5、解压的目录中有一个upload目录(包含主页面的代码目录),将其复制到数据卷中,并给该目录授予读写执行的权限。
6、生成临时容器,查看容器的端口与发布的目录,删除临时容器
命令:<code>docker run -it docker.io /mdxcentos-lamp /bin/bash
cd /etc/httpd/conf
cat httpd.conf |greap DocumentRoot
cat httpd.conf |greap Listen
退出删除容器
<code>exit
docker container stop 容器ID
docker container rm 容器ID
7、正式生成容器
<code>docker run -d -p 8082:80 -v lampcvol:/var/www/html mdxcentos-lamp
-p :将宿主机的8082端口映射到容器的80端口中
-v :将数据卷lampcvol挂载到容器中的发布目录/var/www/html
8、浏览器访问http://localhost:8082/upload进行安装,按照提示安装完成后,在浏览器输入http://localhost:8082/upload/forum.php显示该画面则安装完成。
9、不同路径发布,多个目录存放对应的开发源码,修改端口号
<code>mkdir lamp1
mkdir lamp2
cp 源码文件路径 /lamp1
cp 源码文件路径 /lamp2
cd lamp1
unzip 目录下源码压缩包
chmod 777 -R .
docker run -d -p 8081:80 -v lampcvol:/var/www/html mdxcentos-lamp
docker run -d -p 8083:80 -v lampcvol:/var/www/html mdxcentos-lamp
通过访问不同的端口,为不同的用户提供环境(开发环境|运维环境|测试环境)
⭐️⭐️⭐️总结
docker三要素命令思维导图:
✈️✈️✈️如果喜欢这篇文章的话
🙏大大们可以动动发财的小手:
👉👉👉
点赞:👍收藏:⭐️评论:✍️👈👈👈
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。