Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >docker实操

docker实操

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

一、安装docker

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

1.1yum安装docker

执行如下命令:

代码语言:shell
AI代码解释
复制
#更新所有软件 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
AI代码解释
复制
## 完成安装后启动docker,执行如下命令:

# 启动docker

systemctl start docker # 开机启动docker systemctl enable docker # 查看docker运行状态 systemctl status docker

1.3)修改docker的仓库地址

代码语言:shell
AI代码解释
复制
## 执行如下命令:

# 创建远程仓库配置文件

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
AI代码解释
复制
## 在公共镜像仓库查找  tengine服务软件,执行下面命令

docker search nginx

2.2)拉取镜像nginx

代码语言:shell
AI代码解释
复制
## 从公共镜像仓库拉取稳定版的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
AI代码解释
复制
## 执行如下命令,根据镜像 axizdkr/tengine:2.3.4 启动容器

# 启动容器

docker run -d --name=webserver nginx:stable-otel # 查看启动的容器

docker ps -a

# 查看容器的日志信息

docker logs webserver

3.2)容器进行端口映射

代码语言:shell
AI代码解释
复制
## 确保外部可以进行访问容器里面的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
AI代码解释
复制
## 当前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
AI代码解释
复制
## 我们在第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
AI代码解释
复制
## 执行如下命令:

# 通过dockerfile文件创建自定义镜像

docker build -t mynginx:v1.0 -f ./Dockerfile . # 查看生成的自定义镜像

docker images mynginx:v1.0

4.3) 从自定义镜像运行容器

代码语言:shell
AI代码解释
复制
## 运行如下命令:

# 启动容器

docker run -d --name=myserver -p 9001:80 mynginx:v1.0

五、docker compose 多管理

使用docker compose管理多个容器

5.1)安装docker-compose

直接下载二进制文件安装即可,如下命令:

代码语言:shell
AI代码解释
复制
# 从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
AI代码解释
复制
## 生成一个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
AI代码解释
复制
# 停止之前的容器

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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker 三剑客之docker-compose
一、Compose简介 Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。
小手冰凉
2020/08/13
6940
《前端运维》三、Docker--2其他
   docker的镜像类似于用一层一层的文件组成。inspect命令可以查看镜像或容器的的信息,其中Layers就是镜像的层文件,只读不能修改,基于镜像创建的容器会共享这些层。下面我们先来学习一下dockerFile中的一些命令:
zaking
2022/05/10
8140
《前端运维》三、Docker--2其他
Docker容器化部署,这些最佳实践你不可不知
Docker 作为一种开源的容器化技术,在当今的软件开发和部署领域中发挥着至关重要的作用。它具有诸多显著优势,为开发者和运维人员带来了极大的便利。
天创项目管理分享
2024/11/20
1.6K0
Docker容器化部署,这些最佳实践你不可不知
【云原生实战】Docker基本概念以及命令实战
Install Docker Engine on CentOS | Docker Documentation
陶然同学
2023/02/27
3670
【云原生实战】Docker基本概念以及命令实战
Docker 容器编排利器 Docker Compose
Docker Compose 项目是 Docker 官方的开源项目,Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multi-container Docker applications)」,来源于之前的 Fig 项目,使用 Python 语言编写。负责实现对 Docker 容器集群的快速编排。项目地址为:https://github.com/docker/compose/releases
贾维斯Echo
2024/03/26
8510
Docker 容器编排利器 Docker Compose
Docker简单入门
以下所有学习均使用腾讯云官方镜像Centos7.8,安装后无任何额外安装。***.com域名解析为我服务器的ip,后续不进行解释。
古人诗
2021/01/15
1.3K0
Docker简单入门
docker 及 docker-compose 的快速安装和简单使用
通过下面的一个脚本可以简单快速的创建一个镜像并运行起来 大概看下应该就可以大概明白镜像的基本使用了
易墨
2018/09/14
1.9K0
docker入门笔记
容器理念是单进程, 如 执行一个/bin/bash 当退出/bin/bash之后 相当于退出 bash环境 自然就结束掉了。
范一刀
2021/08/10
4090
Docker--Compose介绍(三)
Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Kevin song
2022/11/19
4880
Docker--Compose介绍(三)
Docker 学习总结
推荐安装 vagrant + VirtualBox 快速搭建 docker host,不推荐直接使用 Docker for Mac
CS逍遥剑仙
2020/06/07
3.1K0
02 . DockerFile构建镜像和Docker仓库
注意: Dockerfile的指令是每执行一次都会在docker上新建一层,所以过多无意义的层,会造成镜像膨胀过大,上面提到过,可以用&&符号链接命令,这样执行后,只会创建一层镜像
iginkgo18
2020/09/27
2.5K0
02 . DockerFile构建镜像和Docker仓库
一文说清docker及docker compose的应用和部署
本文视频版教程:一个视频说清docker及docker compose的应用和部署(https://cloud.tencent.com/developer/video/82177)
参谋带个长
2025/03/12
1.2K0
Docker Compose 项目打包部署
参考官方:https://docs.docker.com/compose/compose-file/
IT茂茂
2020/03/19
5.6K0
Docker 入门指南
Docker是基于Go开发的应用容器引擎,属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
被水淹没
2023/02/25
2.3K0
Docker 入门指南
这就是你日日夜夜想要的docker!!!---------Docker Compose容器编排理论+实操
Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。它是一个定义和运行多容器的docker应用工具。使用compose,你能通过YMAL文件配置你自己的服务,然后通过一个命令,你能使用配置文件创建和运行所有的服务。
不吃小白菜
2020/09/24
7560
这就是你日日夜夜想要的docker!!!---------Docker Compose容器编排理论+实操
容器技术|Docker三剑客之Compose
docker技术是基于Linux内核的cgroup技术实现的,那么问题来了,在非Linux平台上是否就不能使用docker技术了呢?答案是可以的,不过显然需要借助虚拟机去模拟出Linux环境来。 docker-machine就是docker公司官方提出的,用于在各种平台上快速创建具有docker服务的虚拟机的技术,甚至可以通过指定driver来定制虚拟机的实现原理(一般是virtualbox)。
民工哥
2020/09/16
8270
容器技术|Docker三剑客之Compose
Docker 常用命令
在使用Docker时,有一些常用命令可以帮助你高效地管理容器、镜像和网络等资源。以下是一些最常用的Docker命令及其用途。
用户3672714
2025/07/25
1360
2.Docker学习之基础使用
学习参考:https://yeasy.gitbooks.io/docker_practice/repository/registry.html
全栈工程师修炼指南
2020/10/23
2.6K0
2.Docker学习之基础使用
使用Docker Compose、Nginx、SSH和Github Actions实现前端自动化部署测试机
显然这个流程不仅繁琐,而且效率也不高,开发每次发布都要耗费很长的时间在部署构建上面。
前端森林
2021/11/12
1.3K0
Docker-Compose的一些常用命令
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。 Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。 使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。 Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。
javascript.shop
2019/09/04
20K0
相关推荐
Docker 三剑客之docker-compose
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档