前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker实操

docker实操

原创
作者头像
曲奇小点点
修改2024-08-16 16:02:13
780
修改2024-08-16 16:02:13
举报
文章被收录于专栏:基础项目部署

一、安装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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我们通过yum的方式来安装docker,yum是centos操作系统上专门用于软件管理的工具,我们通过yum可以安装、删除、更新软件。
  • 执行如下命令:
  • 通过Dockerfile文件来生成自己的镜像
  • (5.1)安装docker-compose
  • (5.2)docker-compose文件
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档