环境:centos7.9
内存不低于4G
硬盘不低于60G
NAT模式
一、Doceker安装
1. 禁用防火墙和SElinux
1. systemctl stop firewalld #禁用防火墙
2. systemctl disable firewalld
3. setenforce 0 #关闭SELinux安全机制
4. vi /etc/selinux/config # 将“SElinux”选项设置为“disabled”,重启系统即可生效
2. 设置Docker仓库
1. yum install -y yum-utils device-mapper-persistent-data lvm2
2. yum-config-manager --add-repo "镜像仓库源网址" # 这将在/etc/yum.repos.d/ 目录下创建一个名为docker-ce.repo的文件,该文件中定义了多个仓库地址,默认Stable(稳定版)被启用
1)yum-utils提供yum-config-manager工具,devicemapper存储驱动程序需要device-mapper-persistent-data和lvm2
mapper:n. 映射,制图人
persistent:adj. 持续的,执意的
2)这里使用的是阿里的镜像仓库源,
3. 安装Docker CE
1. yum -y install docker-ce
2. docker --version # 查看安装版本
3. yum list docker-ce --showduplicates |sort -r # 列出可用的Docker版本,“sort -r”表示对结果按版本由高到底排序
4. systemctl start docker #启动docker
5. systemctl enable docker
安装了最新版的docker-ce,并会自动安装docker-ce-cli、containerd.io软件包
duplicate:n. 副本,多重记录,复制品
sort:n. 分类,排序
4. 配置镜像加速器
1. vi /etc/docker/daemon.json #一般daemon.json文件是没有的需要自建
daemon.json文件中的内容,这里采用的是阿里云的镜像加速器
{
"registry-mirrors": ["https://********.mirror.aliyuncs.com"]
}
systemctl daemon-reload #重新加载daemon.json配置文件
systemctl restart docker #重启docker,以使docker配置文件生效
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
sejyyn5s
二、业务部署
方法一:
拉取镜像并创建容器
1. 拉取镜像
1. docker pull centos:7
2. docker pull mysql:5.7 #拉取mariadb的镜像也可以
2. 创建CentOS容器作为web服务器
1. docker run -d -p 8080:80 --name centos7_web --privileged=true centos:7 /usr/sbin/init #创建并运行
> > --privileged=true:使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。
2. docker exec -ti centos7_web /bin/bash #进入运行的容器执行命令
> 进入centos_web后,下载php,php-gd,php-mysql,httpd,unzip,开启httpd服务
3. docker cp TinyShopV3.1.1_data.zip centos7:/var/www/html #用docker cp 命令将Docker主机上的电子商城系统复制到centos7_web容器上来,再将其解压,添加权限,即可用浏览器访问
3. 创建MySQL容器作为数据库服务器
1. docker run -d --name mysql_1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234567 mysql:5.7
2. docker exec -ti mysql_1 /bin/bash
mysql -u root -p #进入mysql_1容器后,输入此命令可进入数据库命令行
> -e MYSQL_ROOT_PASSWORD:在创建mysql容器的同时创建一个root用户,密码为123456
1)若创建容器使用的镜像是centos的latest版本,在使用yum源安装时候,出现下面问题 “error:Failed to download metadata for repo ‘AppStream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist”,这只是其中一个问题。 具体解决方案1.No URLs in mirrorlist;2.Failed to set locale, defaulting to C.UTF-8
2)若创建容器使用的镜像是centos的7版本,再使用"systemctl"命令时提示“不允许操作”,建议重建容器,执行docker run 或docker create命令时,添加–privileged=true参数以增添权限.
方法二:
使用Docker Compose部署
1. 安装Docker Compose
1) 在官网上下载和Docker引擎版本相匹配的Dokcer Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。在 Docker Compose 文件 (docker-compose.yaml) 中,有一个 version 字段用来指定 Docker Compose 文件的版本,表示 Docker Compose 文件的语法和功能的版本。不同的版本可能支持不同的特性和语法,因此在 Docker Compose 文件指定的version必须与安装在主机上的Docker Compose版本相匹配。否则使用不同版本可能会出现兼容性的问题,导致出现一些意外行为或错误。通常情况下,使用最新版本的Docker Compose,因为它包含最新的特性和修复了已知的漏洞。
查看Docker Compose和Docker版本对应关系:
对于Dokcer Compose1.25.4以及更早的版本的下载,可以参考官网的方法
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
下载很慢,需要耐心等待
若docker引擎是直接使用 #yum -y install docker-ce 命令下载的,Dokcer Compose的插件包也会一同安装,但不是docker-compose命令,是docker 中的一个compose命令,即docker compose ,作用与docker-compose一致。