编程入门(九)【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三要素命令思维导图:

在这里插入图片描述

✈️✈️✈️如果喜欢这篇文章的话

🙏大大们可以动动发财的小手:

👉👉👉

点赞:👍收藏:⭐️评论:✍️👈👈👈



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。