前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云原生】Docker的基本使用方法与优势

【云原生】Docker的基本使用方法与优势

原创
作者头像
coldPlayer
发布2023-11-30 14:02:37
2010
发布2023-11-30 14:02:37
举报

🥙一、简介

Docker是基于Go语言实现的开源应用容器引擎,通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的应用及其运行环境能够做到 ==<font color=red >一次封装,到处运行</font>==。

Docker 使用客户端-服务器 (C/S) 架构模式。Docker 客户端会与 Docker 守护进程进行通信。Docker 守护进程会处理复杂繁重的任务,例如建立、运行、发布你的 Docker 容器。Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker 客户端去连接一个远程的 Docker 守护进程。我们了解Docker内部构建,需要先了解几个概念:

Docker守护进程:Docker 守护进程运行在主机上。用户并不直接和守护进程进行交互,而是通过 Docker 客户端间接和其通信。

Docker客户端:接收用户的指令并与背后的 Docker 守护进程通信。

Images(镜像):是一个只读模板,镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器,每一个镜像由一系列的层 (layers) 组成。

Containers(容器):Docker 利用容器(Container)独立运行的一个或一组应用,容器是用镜像创建的运行实例,镜像与容器的关系类比面向对象中的类和对象。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

Repository(仓库):仓库是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式,最大的公开仓库是 Docker Hub

🥪二、优势

容器类似于 VM,但是它们具有被放宽的隔离属性,可以在应用程序之间共享操作系统(OS)。 因此,容器被认为是轻量级的。容器与 VM 类似,具有自己的文件系统、CPU、内存、进程空间等。可以把容器看做是不用安装操作系统的虚拟机,容器化技术比虚拟机更加灵活,更加小巧,更加极致的利用物理机资源。具有优势如下:

  • 部署快,开发测试更加敏捷 通过Docker 打包镜像发布测试,一键运行。systemctl start docker
  • 一次封装,到处运行 Docker可以再任意平台运行,设备兼容性很强,这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个平台。
  • 更高的资源利用率 一台主机可以运行多个个Docker容器,他们之间相互独立。容器除了运行其中的应用外,基本不消耗额外的系统资源。
  • 组建微服务架构 一台主机可以运行多个容器,故而可以跑多个服务。Docker的容器设计原则:一个容器一个服务,容器之间相互隔离。🌮三、基本使用
  • 启动Docker
  • 搜索镜像
代码语言:javascript
复制
docker search 镜像名称
  • 下载镜像
代码语言:javascript
复制
docker pull 镜像名称  //默认下载latest
docker pull 镜像名称:5.7 //指定版本下载
  • 查看本地的所有镜像
代码语言:javascript
复制
docker images
docker image ls
  • 删除镜像
代码语言:javascript
复制
docker rmi 镜像名称
  • 运行容器
代码语言:javascript
复制
docker run [可选参数] image

参数: -p:端口映射(宿主机端口:容器端口,即将主机端口映射到容器端口) -v:容器目录映射到本地目录(宿主机文件目录:容器文件目录,将宿主机文件挂载到容器目录) -d:后台启动容器 -it:以交互式模式启动容器 –name:容器名称

比如:

代码语言:javascript
复制
docker run -it  
--name verdaccio 
-p 4873:4873   
-v /root/verdaccio/conf:/root/verdaccio/conf   
-v /root/verdaccio/storage:/root/verdaccio/storage
 verdaccio/verdaccio
  • 查看容器
代码语言:javascript
复制
docker ps //查看正在运行的容器
docker ps -a //查看正在运行的容器和历史运行过的容器
  • 删除容器
代码语言:javascript
复制
docker rm 容器id
  • 启动、停止容器
代码语言:javascript
复制
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止当前正在运行的容器
docker kill 容器id //强制停止当前容器
  • 进入到某容器
代码语言:javascript
复制
docker exec -it 容器id /bin/bash //进入当前容器后开启一个新的终端,可以在里面操作
docker attach 容器id  //进入容器正在执行的终端
  • 停止运行中的容器
代码语言:javascript
复制
docker stop 容器id  //停止某个运行中的容器
docker ps -a -q // 停止全部容器
  • 退出某容器
代码语言:javascript
复制
exit//如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
  • 查看容器日志
代码语言:javascript
复制
docker logs --tail  300 -f  jz-project
  • 容器保存为镜像(当容器启动不起来的时候会使用)
代码语言:javascript
复制
docker commit 容器id 你命名的镜像名称
  • 根据dockerfile创建镜像
代码语言:javascript
复制
docker build -t 你命名的镜像名称  dockerfile所在目录

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🥙一、简介
  • 🥪二、优势
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档