docker实操

2024-08-16 16:02:13 浏览数 (1)

一、安装docker

我们通过yum的方式来安装docker,yum是centos操作系统上专门用于软件管理的工具,我们通过yum可以安装、删除、更新软件。

1.1yum安装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>&copy; 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.1Dockerfile文件编写

代码语言: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.2docker-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

0 人点赞