微服务技术栈-初识Docker

文章目录


前言

docker技术风靡全球,它的功能就是将linux容器中的应用代码打包,可以轻松的在服务器之间进行迁移。docker运行程序的过程就是去仓库把镜像拉到本地,然后用一条命令把镜像运行起来变成容器。


一、Docker概念

Docker是一个开源的应用容器引擎 ,诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名Docker Inc),可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。


Docker具有以下几点特征:

  1. 容器是完全使用沙箱机制,相互隔离。
  2. 容器性能开销极低。
  3. 使用Docker,开发人员可以轻松地构建、发布和管理应用程序,而不受底层硬件或操作系统的限制。

在上图中我们可以观察到鲸鱼身上拖着一个一个集装箱,这个集装箱非常生动的展示了docker的优势和作用:
我们可以把程序代码和所需要的环境放到一个集装箱里面去,这样如果我们要部署这套程序代码到新机器上,就直接把集装箱拿过去就行了,docker的集装箱可以保证我们的程序不管运行在哪不会缺东西。

例如:一个Java Web项目在Linux上启动需要一个操作系统,操作系统之上要JDK、Tomcat、Mysql、Redis、Nginx等环境,如果不用Docker,我们则需要在服务器上手动复刻一套我们本地的环境,同时还要保证版本正确和配置文件正确,这个过程非常繁琐。

如果用了Docker,我们可以把自己机器上的系统、应用、配置全都打包成一个集装箱,由鲸鱼给我们送到服务器上,在我的机器上怎么运行,在别的机器上也怎么运行,不会有任何的问题。由此可见,Docker解决了开发人员、测试人员、运维人员运行环境不一致所带来的问题。


二、安装Docker

接下来我们在CentOs环境下安装一下docker
1.yum包更新到最新。

powershell 复制代码
yum update

2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。

powershell 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2

3.设置yum源。

powershell 复制代码
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.安装docker,出现输入的界面都按 y。

powershell 复制代码
yum install -y docker-ce

5.查看docker版本,验证是否成功。

powershell 复制代码
docker -v

三、Docker服务命令

1.启动docker服务:

powershell 复制代码
systemctl start docker

2.停止docker 服务:

powershell 复制代码
systemctl stop docker

3.重启docker 服务:

powershell 复制代码
systemctl restart docker

4.查看docker 服务状态:

powershell 复制代码
systemctl status docker

5.设置开机启动docker:

powershell 复制代码
systemctl enable docker

四、Docker镜像和容器

镜像:一种文件形式,可以把许多文件做成一个镜像文件。

镜像(Image):。本质上来说镜像就是一系列文件,可以包括我们应用程序的文件,也可以包括我们应用的运行环境的文件。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。

容器(Container):镜像和容器的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体,容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):仓库可以看成一个代码控制中心,用来保存镜像。

Docker镜像相关命令

1.查看镜像:查看本地所有的镜像

powershell 复制代码
docker images
docker images -q #查看所有镜像的id

2.搜索镜像:从网络中查找需要的镜像

powershell 复制代码
删除镜像:删除本地镜像

3.拉取镜像:从Docker 仓库下载镜像到本地,镜像名称格式为名称:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。

powershell 复制代码
docker pull 镜像名称

4.删除镜像:删除本地镜像。

powershell 复制代码
docker rmi 镜像id/名称号:版本号 #删除指定本地镜像
docker rmi 'docker images -q' #删除所有本地镜像

Docker容器相关命令

1.查看容器

powershell 复制代码
docker ps #查看正在运行的容器
docker ps -a #查看所有容器

2.创建并启动容器

powershell 复制代码
docker run 参数 版本:版本号 </bin/bash>#默认为/bin/bash

参数说明:

  • -i:保持容器运行。通常与-t同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
  • -t:为容器重新分配一个伪输入终端,通常与-i同时使用
  • -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec进入容器docker exec -it c2 /bin/bash。退出后,容器不会关闭
  • -it创建的容器一般称为交互式容器;-id创建的容器一般称为守护式容器
  • --name:为创建的容器命名

3.进入容器

powershell 复制代码
docker exec 参数 #退出容器,容器不会关闭

4.停止容器

powershell 复制代码
docker stop 容器名称

5.启动容器

powershell 复制代码
docker start 容器名称

6.删除容器:如果容器是运行状态则删除失败,需要停止容器参能删除

powershell 复制代码
docker rm 容器名称

7.查看容器信息

powershell 复制代码
docker inspect 容器名称

总结

通过利用Docker的快速交付,测试和部署代码的方法,可以显着减少编写代码和在生产环境中运行代码之间的延迟。在后续章节我们将介绍Docker数据卷和Docerfile的概念,以及用Docker在服务器上部署应用。


相关推荐
OnlineProxy2 小时前
企业级代理服务器架构:合规性、NDA 诚信与灰色 P2P 网络风险防范
网络·架构·p2p
weixin_3077791310 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
灯澜忆梦10 小时前
【minio】#1 | 简介与安装
docker·对象存储·minio
code_slave(码畜)13 小时前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构
豆豆13 小时前
2026 年建站架构选型实录:从 SC-081v3 证书新政与备案新规倒推 CMS 选型口径
架构·https·cms·geo·acme·web架构·pageadmin
海宇大数据14 小时前
零信任架构实战:基于海宇活体识别V步骤1构建自动化远程公证会话初始化网关
运维·人工智能·架构·自动化
邵奈一14 小时前
Codex 重连卡半天,一行配置搞定
架构
code_slave(码畜)14 小时前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
天远数科15 小时前
零信任架构实战:基于天远全能消金报告构建自动化消费分期网关
运维·人工智能·架构·自动化
code_slave(码畜)15 小时前
微服务架构落地:公共中间件层总览——不承载业务,只承载稳定性
spring boot·spring cloud·微服务·中间件·架构