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

avatar
作者
猴君
阅读量:0

读者大大们好呀!!!☀️☀️☀️


请添加图片描述
👀期待大大的关注哦❗️❗️❗️
🚀欢迎收看我的主页文章➡️木道寻的主页

文章目录

🔥前言

当我们学习一门知识时,都会涉及到哲学三问:(我是谁?)什么是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提供各种镜像
命令:

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
在这里插入图片描述

挂载volume数据卷(此操作在下面部署时展示)

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

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

🙏大大们可以动动发财的小手: 👉👉👉 点赞:👍收藏:⭐️评论:✍️👈👈👈

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!