Docker容器引擎

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 主要是应用、依赖、函数库、配置一起打包,形成可移植镜像

一.认识docker

1.docker在开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像

2.docker在运行中使用沙箱机制,相互隔离

二.Docker和虚拟机的差异

1.docker体积小,启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

2.docker是一个系统进程;虚拟机时操作系统

三.镜像和容器

1.docker将应用、依赖、函数库、配置一起打包,称为镜像(Image)

2.镜像运行以后就是进程,进程就是容器,docker会给容器做隔离,对外不可见

3.DockerHub是Docker镜像的托管平台

四.docker架构(docker run是构建镜像,docker pull是把远程的拿到本地,docker run是把本地的运行到容器)

五.docker的常用命令

1.启动docker:systemctl start docker

2.关闭docker:systemctl stop docker

3.重启docker:systemctl restart docker

4.关闭防火墙:systemctl stop firewalld

5.查看镜像:docker images

6.删除镜像:docker  rmi  -f  镜像名(-f是强制删除)

7.保存镜像为一个压缩包:docker save -o 压缩名 要变的名

8.加载压缩包为镜像:docker load -i压缩包

六.docker的拉取、压缩、加载镜像

1.镜像:【镜像名称】:【版本】如:mysql:5.7;如果拉取的时候没有给指定版本,就会使用最新的

2.把远程拉到本地:docker pull 服务名;如果要加版本在服务名后面加版本号

七.docker容器

1.镜像docker run之后容器可以运行、暂停、停止

2.运行---->暂停:docker pause;暂停---->运行:docker unpause

3.运行---->停止:docker stop 容器名;停止---->运行:docker start 容器名

4.查看所有容器的运行状态:docker ps

5.查看容器运行日志:docker logs -f 容器名(-f可以持续查看日志)

6.进入容器执行命令:docker exec -it  容器名称 bash

7.运行镜像:docker run --name nginx -p 80:80 -d nginx(只有第一次运行才这样);以后docker run 容器名称就行了

八.修改容器文件

1.进入cd /usr/share/nginx/html

2.cat index.html查看html里面的代码

九.启动redis和数据存储

1.把redis镜像变为容器

2.然后再docket exec -it redis bash进行修改

3.设置redis的持久化

4.进入到容器docket exec -it redis bash

5.进入redis-cli -p 6379;有多个端口要声明端口

十.数据卷(Volumes)

1.等于第三方,方便于容器之间的数据进行交换,因为容器跟容器之间是互相隔离的,要想数据交换很困难所以使用了数据卷

2.创建数据卷:docker volume create html

3.查看所有数据:dockers volume ls

3.查看数据卷的详情信息:docker volume inspect html(还可以查询文件的路径)

4.删除:dockers volume rm 文件名

十一.挂载数据卷

1.先删除nginx

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
Kubernetes 开发者 Docker
构建高效微服务架构:Docker与Kubernetes的协同应用
【5月更文挑战第30天】 在当今软件开发领域,微服务架构已成为实现系统模块化、提升可维护性及扩展性的关键策略。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理,共同构建一个既高效又可靠的后端微服务环境。我们将剖析Docker和Kubernetes的核心功能,以及它们如何相辅相成,支撑起现代化的云原生应用程序部署和管理。文章还将提供具体实践案例,帮助开发者理解将理论应用于实际开发过程中的步骤和考虑因素。
|
7天前
|
Kubernetes Cloud Native 开发者
构建高效的云原生应用:Docker与Kubernetes的完美搭档
【5月更文挑战第29天】 在现代软件开发领域,"云原生"这一术语已经成为高效、可扩展和弹性的代名词。本文将深入探讨如何通过Docker容器化技术和Kubernetes集群管理工具实现云原生应用的构建和管理。我们将剖析Docker的核心原理,揭示其轻量级和易于部署的特点,并进一步探索Kubernetes如何为这些容器提供编排,保证应用的高可用性与自动扩缩容。文章不仅讨论了二者的技术细节,还提供了实践案例,帮助开发者理解并运用这些技术构建和维护自己的云原生应用。
|
5天前
|
前端开发 应用服务中间件 nginx
Docker consul的容器服务更新与发现
Docker consul的容器服务更新与发现
|
5天前
|
Docker 容器
docker: 如何不新建容器 修改运行容器的端口
docker: 如何不新建容器 修改运行容器的端口
|
5天前
|
数据管理 Linux Docker
docker 数据管理 与容器互联
docker 数据管理 与容器互联
|
6天前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于Docker和Kubernetes的实践
【5月更文挑战第30天】 在当今的快速迭代和持续部署的软件发布环境中,自动化运维的重要性愈发凸显。本文旨在探讨如何利用容器化技术与微服务架构,特别是Docker和Kubernetes,来构建一个高效、可伸缩且自愈的自动化运维体系。通过详细分析容器化的优势及Kubernetes的集群管理机制,文章将提供一个清晰的指南,帮助读者理解并实现现代软件部署的最佳实践。
|
6天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
80 0
|
7天前
|
大数据 Linux Docker
mac docker 宿主机和容器间网络打通
mac docker 宿主机和容器间网络打通
6 0
|
7天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:基于Docker和Kubernetes的实践指南
【5月更文挑战第29天】 在现代云计算环境中,自动化运维已成为提升服务效率、确保系统稳定性的关键因素。本文深入探讨了如何利用Docker容器化技术和Kubernetes集群管理工具来构建一个高效且灵活的自动化运维体系。通过分析具体实施步骤和策略,我们旨在为读者提供一个清晰的指导框架,以支持他们在不断变化的技术需求中快速部署和扩展应用程序。本指南不仅涉及技术的基础知识,还涵盖了持续集成/持续部署(CI/CD)流程的集成,以及监控和日志管理的优化实践。
|
8天前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于Docker和Kubernetes的实践
【5月更文挑战第28天】在现代云计算环境中,自动化运维已成为提升服务效率、减少人为错误和应对快速变化需求的关键。本文以实际案例为依托,详细探讨了如何利用Docker容器化技术和Kubernetes集群管理系统搭建一套高效的自动化运维平台。通过深入分析Docker的轻量级虚拟化特性及Kubernetes的编排能力,本文展示了从基础设施搭建到持续集成、部署和监控的全自动化流程,旨在为运维工程师提供一种提高生产力、降低运营成本的可行解决方案。