微服务技术栈-初识Docker

文章目录

  • 前言
  • 一、Docker概念
  • 二、安装Docker
  • 三、Docker服务命令
  • 四、Docker镜像和容器
    • Docker镜像相关命令
    • 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包更新到最新。

yum update

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

yum install -y yum-utils device-mapper-persistent-data lvm2

3.设置yum源。

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

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

yum install -y docker-ce

在这里插入图片描述

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

docker -v

在这里插入图片描述


三、Docker服务命令

1.启动docker服务:

systemctl start docker

2.停止docker 服务:

systemctl stop docker

3.重启docker 服务:

systemctl restart docker

4.查看docker 服务状态:

systemctl status docker

在这里插入图片描述

5.设置开机启动docker:

systemctl enable docker

四、Docker镜像和容器

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

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

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

仓库(Repository):仓库可以看成一个代码控制中心,用来保存镜像。
在这里插入图片描述

Docker镜像相关命令

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

docker images
docker images -q #查看所有镜像的id

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

删除镜像:删除本地镜像

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

docker pull 镜像名称

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

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

Docker容器相关命令

1.查看容器

docker ps #查看正在运行的容器
docker ps -a #查看所有容器

2.创建并启动容器

docker run 参数 版本:版本号 </bin/bash>#默认为/bin/bash

参数说明:

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

3.进入容器

docker exec 参数 #退出容器,容器不会关闭

4.停止容器

docker stop 容器名称

5.启动容器

docker start 容器名称

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

docker rm 容器名称

7.查看容器信息

docker inspect 容器名称

总结

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/125283.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第23期day11 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式求值

目录 一、&#xff08;leetcode 20&#xff09;有效的括号 二、&#xff08;leetcode 1047&#xff09;删除字符串中的所有相邻重复项 用栈存放 将字符串直接当成栈 三、&#xff08;leetcode 150&#xff09;逆波兰表达式求值 一、&#xff08;leetcode 20&#xff09;…

如何禁用Windows 10快速启动(以及为什么要这样做)

如果您不想启用Windows 10快速启动&#xff0c;则可以相对轻松地禁用它。 快速启动是一项功能&#xff0c;首先在 Windows 8 中作为快速启动实现&#xff0c;并延续到 Windows 10&#xff0c;让您的 PC 更快地启动&#xff0c;因此得名。虽然这个方便的功能可以通过将操作系统…

引入短信服务

一、阿里云短信服务 进入阿里云平台&#xff0c;然后选择短信服务&#xff0c;通过API发送短信(需要充值金额&#xff0c;几块钱就可以&#xff0c;我们仅仅是小规模项目) 找到openAPI 可以看到Java语言的代码模板&#xff0c;这个就是Java SendSMS短信服务的代码 创建Accessk…

Vue组件路由

1&#xff0c;安装vue-router组件&#xff0c;终端输入&#xff1a; npm i vue-router3.5.3 2&#xff0c;在src文件夹下创建router目录 3&#xff0c;创建index.js文件&#xff0c;配置路由&#xff0c;导入需要路由的组件。以后每次添加路由只要在routes中改变即可。 impo…

MySQL:温备份和恢复-mysqldump (4)

介绍 温备&#xff1a;同样是在数据库运行的时候进行备份的&#xff0c;但对当前数据库的操作会产生影响。&#xff08;只可以读操作&#xff0c;不可以写操作&#xff09; 温备份的优点&#xff1a; 1.可在表空间或数据文件级备份&#xff0c;备份时间短。 2.备份时数据库依然…

数据结构和算法——数据结构

数据结构&#xff1a; 线性结构&#xff1a; 顺序存储方式&#xff0c;顺序表 常见的顺序存储结构有&#xff1a;数组、队列、链表、栈 链式存储方式&#xff0c;链表 队列&#xff1a; 队列可以使用数组结构或者链表结构来存储&#xff0c;先入先出&#xff0c;后进后出。…

使用nginx作为API网关

使用nginx作为API网关 如果我们需要部署反向代理&#xff0c;我们可能已经听说过 nginx。如果我们还没听说过&#xff0c;让我们在这篇文章谈一谈它&#xff0c;以及我们如何使用它作为API网关。 什么是nginx? nginx是一个HTTP服务器和反向代理&#xff0c;一个邮件代理服务…

智能AI创作系统ChatGPT商业运营版源码+AI绘画系统/支持GPT联网提问/支持Midjourney绘画+Prompt应用+支持国内AI提问模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&…

MacOS怎么安装Nacos(附带:Windows系统)

MacOS安装Nacos&#xff08;一定要配置JDK的环境变量&#xff0c;后面告诉你为什么&#xff1f;&#xff09; &#xff08;1&#xff09;进入Nacos官网&#xff0c;前往githubhomehomehttp://nacos.io/zh-cn/ &#xff08;2&#xff09;点击右下角的releases 然后点击Tags 选择…

STL upper_bound和lower_bound函数

声明&#xff1a; 首先包含头文件#include<algorithm> 这里的两个函数所运用的对象必须是非递减的序列&#xff08;也就是数组&#xff0c;数组必须是非递减的&#xff09;&#xff0c;只有这样才可以使用upper_bound和lower_bound这两个函数。 还有一点&#xff0c;就…

IBT机考-PBT笔考,优劣分析,柯桥口语学习,韩语入门,topik考级韩语

IBT机考&#xff0c;顾名思义就是在电脑上答题考试&#xff0c;区别于现在的PBT纸笔答题&#xff0c;不需要发卷、收卷&#xff0c;也不需要填涂和用笔写字。 考试不需要带任何文具&#xff0c;就连笔试要用到的修正带都将省去。因为听力、阅读的选择题都是用鼠标点击&#xf…

各种机器码的本质(原码、反码、补码、移码、IEEE754格式阶码)

总述 无论使用什么格式的机器码来表示真值&#xff0c;若取一定位数n以后&#xff0c;各个比特位的排列个数是一定的&#xff0c;为 2 n 2^n 2n种排列&#xff0c;所以选择什么格式的机器码实质上选择什么映射方式来完成从这 2 n 2^n 2n种离散排列到离散的整数真值的映射&…