一、安装docker
我们通过yum的方式来安装docker,yum是centos操作系统上专门用于软件管理的工具,我们通过yum可以安装、删除、更新软件。
(1.1)yum安装docker
执行如下命令:
代码语言:shell复制#更新所有软件 yum update -y
#安装docker需要的依赖组件
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装docker的repo源,即从那个地址下载docker的安装rpm包文件
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker- ce.repo
#安装docker
yum install docker-ce
由于海外对国内docker限制的原因,新的安装docker方式可以使用阿里云的docker专用yum源来安装
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
yum -y install docker-ce
(1.2)启动docker
代码语言:shell复制## 完成安装后启动docker,执行如下命令:
# 启动docker
systemctl start docker # 开机启动docker systemctl enable docker # 查看docker运行状态 systemctl status docker
(1.3)修改docker的仓库地址
代码语言:shell复制## 执行如下命令:
# 创建远程仓库配置文件
tee /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["[http://hub-mirror.c.163.com](http://hub-mirror.c.163.com/)"]
} EOF
# 重启docker加载配置文件
# 重启docker服务端
systemctl restart deamon-reload # 重启docker客户端
systemctl restart docker
二、docker镜像操作
(2.1)搜索镜像nginx
代码语言:shell复制## 在公共镜像仓库查找 tengine服务软件,执行下面命令
docker search nginx
(2.2)拉取镜像nginx
代码语言:shell复制## 从公共镜像仓库拉取稳定版的nginx查看版本,可在官网链接查看
[https://hub.docker.com/_/nginx/tags](https://hub.docker.com/_/nginx/tags)
## 执行下面命令:
docker pull nginx:stable-otel
查看拉取到的镜像:
docker images nginx:stable-otel
三、docker 容器操作
(3.1)启动容器
代码语言:shell复制## 执行如下命令,根据镜像 axizdkr/tengine:2.3.4 启动容器
# 启动容器
docker run -d --name=webserver nginx:stable-otel # 查看启动的容器
docker ps -a
# 查看容器的日志信息
docker logs webserver
(3.2)容器进行端口映射
代码语言:shell复制## 确保外部可以进行访问容器里面的web程序,需要进行端口映射,执行如下命令:
# 停止之前的容器
docker stop webserver && docker rm webserver # 启动容器,并进行端口映射
docker run -d --name=webserver -p 9000:80 nginx:stable-otel
# 查看启动的容器
docker ps -a
(3.3)映射本地html文件到容器中
代码语言:shell复制## 当前web容器没有自己的一个网页页面,需要进行路径映射。首先生成一个html目录和文件
# 创建html目录
mkdir html
生成网页文件
echo '<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>欢迎页面</title>
<style>
body {
font-family: Arial, sans-serif; background-color: #f0f8ff; margin: 0;
padding: 0;
}
header {
background-color: #4CAF50; color: white;
text-align: center;
padding: 1em 0;
}
nav {
display: flex;
justify-content: center; background-color: #333;
}
nav a {
color: white; padding: 14px 20px;
text-decoration: none;
text-align: center;
}
nav a:hover {
background-color: #ddd; color: black.
}
main {
padding: 20px;
}
section {
margin-bottom: 20px;
}
footer {
text-align: center; padding: 1em 0;
background-color: #333;
color: white.
}
</style>
</head>
<body>
<header>
<h1>欢迎来到我们的网站</h1>
</header>
<nav>
<a href="#home">首页</a>
<a href="#about">关于我们</a>
<a href="#services">服务</a>
<a href="#contact">联系我们</a>
</nav>
<main>
<section id="home">
<h2>首页</h2>
<p>这是我们网站的主页。在这里,您可以找到我们提供的最新信息和新闻。</p>
</section>
<section id="about">
<h2>关于我们</h2>
<p>我们是一家致力于提供优质服务的公司。我们的团队由经验丰富的专业人士组成,确保为客户提供最佳的解决方案。</p>
</section>
<section id="services">
<h2>服务</h2>
<p>我们提供多种服务,包括网页设计、开发、数字营销等。请联系我们了解更多信息。</p>
</section>
<section id="contact">
<h2>联系我们</h2>
<p>如果您有任何问题或需要更多信息,请通过以下方式联系我们:</p>
<ul>
<li>电子邮件: [example@example.com](mailto:example@example.com)</li>
<li>电话: 123-456-7890</li>
</ul>
</section>
</main>
<footer>
<p>© 2024 我们的网站. 版权所有.</p>
</footer>
</body>
</html>' > ./html/index.html
## 将本地网页目录映射到容器
# 停止之前的容器
docker stop webserver && docker rm webserver # 启动容器
docker run -d --name=webserver -p 9000:80 -v ./html:/usr/share/nginx/html:ro nginx:stable-otel
# 查看启动的容器
docker ps -a
四、Dockerfile 文件
通过Dockerfile文件来生成自己的镜像
(4.1)Dockerfile文件编写
代码语言:shell复制## 我们在第4.3步,将容器中默认的web页面,改为了自己的html页面。但是这个只是临时的,因为当容器删除后,我们的页面就无法保存了,因此,我们通过Dockerfile文件,生成自己的镜像,从这个镜像运行容器后,web页面就是我们自己的html
执行下面的代码生成Dockerfile文件:
tee ./Dockerfile << EOF FROM nginx:stable-otel
COPY ./html /usr/share/nginx/html EOF
(4.2)使用Dockerfile文件生成自定义的镜像
代码语言:shell复制## 执行如下命令:
# 通过dockerfile文件创建自定义镜像
docker build -t mynginx:v1.0 -f ./Dockerfile . # 查看生成的自定义镜像
docker images mynginx:v1.0
(4.3) 从自定义镜像运行容器
代码语言:shell复制## 运行如下命令:
# 启动容器
docker run -d --name=myserver -p 9001:80 mynginx:v1.0
五、docker compose 多管理
使用docker compose管理多个容器
(5.1)安装docker-compose
直接下载二进制文件安装即可,如下命令:
代码语言:shell复制# 从github下载文件
# curl -L https://github.com/docker/compose/releases/download/v2.12.2/docker- compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 方法二 通过pip安装docker-compose # 安装python3的pip
yum -y install epel-release yum -y install python3-pip # 更新pip3
pip3 install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/
# pip3安装docker-compose
pip3 install docker-compose -i https://mirrors.aliyun.com/pypi/simple/ # 查看安装的docker-compose
docker-compose -v
(5.2)docker-compose文件
代码语言:shell复制## 生成一个docker-compose.yml文件,分别从镜像nginx:stable-otel和mynginx:v1.0启动容器执行下面的命令生成一个docker-compose.yml文件:
tee ./docker-compose.yml << EOF version: "2"
services: web:
image: nginx:stable-otel
container_name: webserver ports:
- "9000:80"
myweb:
image: mynginx:v1.0 container_name: myserver ports:
- "9001:80"
EOF
(5.3)使用docker-compose同时启动容器
根据docker-compose.yml同时启动2个容器,命令如下:
代码语言:shell复制# 停止之前的容器
docker stop webserver && docker rm webserver docker stop myserver && docker rm myserver
# docker-compose 同时启动2个容器
docker-compose -f ./docker-compose.yml up -d
# 查看容器启动情况
docker-compose ps -a