当前位置: 代码网 > 服务器>服务器>Linux > 编程入门(九)【linux系统下docker的部署与发布网站】

编程入门(九)【linux系统下docker的部署与发布网站】

2024年08月01日 Linux 我要评论
当我们学习一门知识时,都会涉及到哲学三问:(我是谁?)什么是docker?(我为什么在这里?)为何要有docker?(我要去哪里?)docker要做什么?本篇将带你一起解答这些问题。

🔥前言

当我们学习一门知识时,都会涉及到哲学三问:(我是谁?)什么是docker?(我为什么在这里?)为何要有docker?(我要去哪里?)docker要做什么?本篇将带你一起解答这些问题。

🚀什么是docker?

在传统的网站部署时,一个linux服务器,部署一个web网站:如下图所示
在这里插入图片描述
这种模式下有很多弊端:
1、需要大量的服务器
2、启动速度慢
3、开发、测试、运维环境不一致,导致的bug可能因环境不一致引起
因此docker就运营而生了,只需要一台linux服务器
在这里插入图片描述

一个web网站需要什么?web服务需要:
1、接收客户端数据
2、连接数据库
3、调度开发网页
在这里插入图片描述

🚀docker三要素

1️⃣ 仓库 – repository ----网站docker提供各种镜像
命令:

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)+数据库服务
拉取镜像

docker pull php

在本地主机上使用一个不存在的镜像时 docker 就会自动下载这个镜像。如果想预先下载这个镜像,可以使用这个命令。不指定版本, 会获取latest 镜像。
在这里插入图片描述

docker pull 镜像名:版本号

拉取指定版本的镜像
在这里插入图片描述
除了在有网的环境下进行镜像的拉取,还可以在离线的条件下预先下载了镜像文件
docker save 镜像tar包
在这里插入图片描述
1、导入镜像

docker load < 文件地址

在这里插入图片描述

其中image id:为镜像的唯一编号,可以为其取别名,便于识别使用
先用docker images 命令查看镜像。再根据编号取别名:
在这里插入图片描述
再输入下列命令:

docker tag 前四位编号 别名(:描述)括号中如果没有描述则为默认latest版本

在这里插入图片描述
2、启动容器
命令:docker run -d 镜像别名
-d 守护,后台运行。
在这里插入图片描述
每执行一次就会创建一个容器!!!
3、查看容器状态
命令:docker ps -a
在这里插入图片描述
4、进入容器
命令:docker exec -it 容器id /bin/bash
在这里插入图片描述

5、退出容器
快捷键ctrl+p再ctrl+q
在这里插入图片描述
6、停止容器
命令:docker container stop 容器id
在这里插入图片描述
7、重启容器
命令:docker container start 容器id(启动容器)
docker container restart 容器id(终止容器运行,再启动)
在这里插入图片描述
8、删除容器
命令:docker container rm 容器id(只能删除已经停止的容器)
在这里插入图片描述
9、docker 命令帮助

docker command --help

在这里插入图片描述

🚀docker实例:lamp部署网站

docker数据卷项目

数据卷的概念

数据卷,是一个可供一个或多个容器使用的特殊目录,特性有:
1️⃣数据卷可以在容器之间共享和重用
2️⃣对数据卷的修改会立马生效
3️⃣对数据卷的更新,不会影响镜像
4️⃣数据卷被设计用来持久化数据的,她的生命周期独立于容器

数据集的基本操作

docker volume create 数据卷名
在这里插入图片描述

docker volume inspect 数据卷名

在这里插入图片描述

docker volume ls
在这里插入图片描述

docker volume rm 数据卷名
在这里插入图片描述

先创建几个数据卷,再进行清理
在这里插入图片描述
docker volume prune
在这里插入图片描述

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目录
mkdir lamp
3、将源码压缩包拷贝到lamp目录下,并解压
cp 源码压缩包位置 lamp
cd lamp
unzip 压缩包名
4、建立lamp项目需要的数据卷,并查看数据卷的存放路径
在这里插入图片描述
5、解压的目录中有一个upload目录(包含主页面的代码目录),将其复制到数据卷中,并给该目录授予读写执行的权限。
在这里插入图片描述在这里插入图片描述
6、生成临时容器,查看容器的端口与发布的目录,删除临时容器
命令:docker run -it docker.io /mdxcentos-lamp /bin/bash
cd /etc/httpd/conf
cat httpd.conf |greap documentroot
cat httpd.conf |greap listen
在这里插入图片描述
退出删除容器
exit
docker container stop 容器id
docker container rm 容器id
在这里插入图片描述
7、正式生成容器

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、不同路径发布,多个目录存放对应的开发源码,修改端口号

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三要素命令思维导图:
在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com