docker安装和基本操作

2023-11-01

简介

docker的三个基本概念

  • 镜像(Image)  

    Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

  • 容器(Container)

    容器 (container) 的定义和镜像 (image) 几乎一模一样,是指image的运行时,包含了文件资源(image展开)和系统资源(变成process存在于系统中) 

  • 仓库(Repository)

    Docker 仓库是集中存放镜像文件的场所。

  Docker 使用 C/S 结构,即客户端/服务器体系结构。 Docker 客户端与 Docker 服务器进行交互,Docker服务端负责构建、运行和分发 Docker 镜像。

  Docker 客户端和服务端可以运行在一台机器上,也可以通过 RESTful 、 stock 或网络接口与远程 Docker 服务端进行通信。

  

  这张图展示了 Docker 客户端、服务端和 Docker 仓库(即 Docker Hub 和 Docker Cloud ),默认情况下Docker 会在 Docker 中央仓库寻找镜像文件,这种利用仓库管理镜像的设计理念类似于 Git ,当然这个仓库是可以通过修改配置来指定的,甚至我们可以创建我们自己的私有仓库。

Docker 的核心组件包括:

  • Docker Client:

    Docker 客户端。它其实就是 Docker 提供命令行界面 (CLI) 工具,是许多 Docker 用户与 Docker 进行交互的主要方式

  • Docker daemon:

    服务器组件,以 Linux 后台服务的方式运行,是 Docker 最核心的后台进程,我们也把它称为守护进程。它负责响应来自 Docker Client 的请求,然后将这些请求翻译成系统调用完成容器管理操作。

  • Docker Image:

    Docker 镜像可以看作是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。我们可将 Docker 镜像看成只读模板,通过它可以创建 Docker 容器。

镜像有多种生成方法:

  • 从无到有开始创建镜像
  • 下载并使用别人创建好的现成的镜像
  • 在现有镜像上创建新的镜像
  • Docker Registry

    Docker registry 是存储 docker image 的仓库,它在 docker 生态环境中的位置如下图所示:

    

  • Docker Container

    Docker 容器就是 Docker 镜像的运行实例,是真正运行项目程序、消耗系统资源、提供服务的地方。

一、安装docker

  Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上

  1. uname -an 查看当前系统版本

  2. yum -y install docker 下载安装docker

  3. service docker start 启动docker服务

  4. docker version 检查docker是否安装成功.查看docker的版本号,包括客户端、服务端、依赖的Go等

  当看到下图的信息,就是表示本机docker已经安装成功

  

chkconfig docker on: 加入开机启动

docker info:查看系统(docker)层面信息,包括管理的images, containers数等

【文章福利】:C/C++Linux服务器开发/后台架构师【公开课学习】(C/C++,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg,大厂面试题 等)有需要的可以点击793599096加群领取哦~

二、镜像操作

  创建容器要以镜像为基础,所以先讲下docker镜像操作

1. 查看镜像

  docker images :查看下本地镜像

  docker images -a :  列出所有的images(包含历史)

2. 搜索镜像

  docker search <image>可以指定具体版本进行下载。 如:docker search java -->在docker中搜索java

3. 下载镜像

  docker pull <image> : 下载对应的images

如: docker pull docker.io/nginx 下载nginx

  下载到本地的镜像要比docker Hub上搜索出来的要大,因为下载过程中自动解压了,在查看镜像列表就有了刚才下载的镜像

  列表包含了仓库名版本标签镜像ID创建时间以及所占用的空间

4. 删除镜像

  docker rmi 镜像id

  如果删除的时候,提示镜像在使用,说明镜像中有容器正在使用,先删除容器,再删除镜像

5. 容器的使用

# 使用镜像创建容器

1. docker run -i -t sauloal/ubuntu14.04
2. docker run -i -t sauloal/ubuntu14.04 /bin/bash # 创建一个容器,让其中运行 bash 应用,退出后容器关闭
3. docker run -itd --name centos_aways --restart=always centos #创建一个名称centos_aways的容器,自动重启
# --restart参数:always始终重启;on-failure退出状态非0时重启;默认为,no不重启

# 查看容器
docker ps :列出当前所有正在运行的container
docker ps -l :列出最近一次启动的container
docker ps -a :列出所有的container(包含历史,即运行过的container)
docker ps -q :列出最近一次运行的container ID
# 再次启动容器
docker start/stop/restart <container> #:开启/停止/重启container
docker start [container_id] #:再次运行某个container (包括历史container)
#进入正在运行的docker容器
docker exec -it  [container_id]  /bin/bash
docker run -i -t -p <host_port:contain_port> #:映射 HOST 端口到容器,方便外部访问容器内服务,host_port 可以省略,省略表示把 container_port 映射到一个动态端口。

# 删除容器
docker rm 容器id

docker rm -f  容器名称

docker rm `docker ps -a -q` #删除所有的container

docker ps -a -q | xargs docker rm #:同上, 删除所有的container​​​​​​

# 停止容器

docker stop 容器id或名称

docker start 、 docker run 、docker create 的区别

docker run 和 docker create 参数基本一样,docker run 相当于docker create 和 docker start

  docker create:只创建容器。 

  docker start 启动一个已经创建的容器

  docker run 创建容器并后台启动

参考: https://blog.csdn.net/deng624796905/article/details/86493330

  https://blog.csdn.net/fgf00/article/details/51893771

转自:https://www.cnblogs.com/FondWang/p/12236173.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker安装和基本操作 的相关文章

随机推荐

  • 蓝桥杯——算法训练——最小距离

    问题描述 数轴上有n个数字 求最近的两个数 即min abs x y 输入格式 第一行包含一个整数n 接下来一行 表示n整数 输出格式 一个整数表示最小距离 样例输入 6 7 3 4 11 9 17 样例输出 1 样例说明 取3和4 数据规
  • 华为OD机试 - 分积木(Java)

    题目描述 Solo和koko是两兄弟 妈妈给了他们一大堆积木 每块积木上都有自己的重量 现在他们想要将这些积木分成两堆 哥哥Solo负责分配 弟弟koko要求两个人获得的积木总重量 相等 根据Koko的逻辑 个数可以不同 不然就会哭 但ko
  • HSQLDB简介

    HyperSQL数据库 HSQLDB 是现代的关系数据库系统 版本2 5 1是全新版本2代码的最新版本 HyperSQL 2 5版与Java 8或更高版本兼容 HyperSQL用于开发 测试和部署数据库应用程序 SQL标准合规性是Hyper
  • winform开发框架常见的分层模式

    winform开发框架 基础的分层模式 可以分为UI层 User Interface BLL层 Business Logic Layer 业务逻辑层 DAL层 Data Access Layer 数据访问层 业务逻辑层 Business L
  • Java的异常入门

    概念 异常就是程序出现了不正常的情况 会导致JVM非正常停止 语法错误不算异常体系中 异常体系 编译时异常 运行时异常 虚拟机默认处理方式 代码中出现异常 程序会先判断有没有处理异常的代码 如果没有就会让调用者 虚拟机 处理 如果有就会走处
  • 各个公司面试汇总及规划(不再进入GIS行业)

    面试了几个大公司 均没过 但是值得骄傲的是 有大公司主动找我的简历后面试了 以前理都不理 值得庆贺 幸亏以前有个Offer UE4 C 25k税前 最低社保最低五险一金 相当于拿到手20K 其余的啥也没有 说一下几个公司的特点 主要是找不足
  • Swin-Transformer分类源码(已跑通colab)

    以下是本文参考的博客 大家有需要可以参考一下 1 Swin Transformer分割源码 已跑通 2 Swin Transformer分类源码 已跑通 3 swin transformer理解要点 一 概要 最近swin transfor
  • nginx 添加http header头,进行跨域设置(“add_header“ directive is not allowed)

    有时候我们想对某个项目进行跨域访问限制 不管是静态目录文件 还是其他 动态文件还好说 可以在代码里添加 如php header Access Control Allow Origin http www a com header Access
  • 基于MeSC与交感神经作用关系的压力水平与白发模拟系统和压力规划系统(更新中)

    基于MeSC与交感神经作用关系的压力水平与白发模拟系统和压力规划系统 一个本人的Matlab项目 可用于根据压力水平模拟白发水平 并根据工作情况给出白发量最少的合理的压力规划 这是本学期 数值计算方法 我做的一个期末大作业 模型还未完全更新
  • 方差分析anova

    方差分析 参考 http wiki mbalib com wiki E6 96 B9 E5 B7 AE E5 88 86 E6 9E 90 方差分析 Analysis of Variance 简称ANOVA 什么是方差分析 方差分析 ANO
  • 【Python八股文系列】:100个Python的面试/笔试高频考点

    Python的100个面试 笔试高频考点 本文主要整理了关于Python的面试 笔试的一些考点 可用于查漏补缺 涉及到的一些Python进阶知识 可以查看专栏学习 Python进阶 quad quad 1 解释型和编译型语言的区别 编译型语
  • 调用接口登录禅道_java调用api接口

    api 可以admin登录禅道 看下后台 二次开发 api 可以看下手册 http devel cnezsoft com book extension api intro 43 html http devel cnezsoft com bo
  • SVN使用教程

    摘自 SVN使用教程 地址 https www bilibili com video BV1k4411m7mP from search seid 1516107384812084869 spm id from 333 337 0 0 摘自
  • 笨办法学python 习题29

    习题29 在atom中的代码 people 20 cats 30 dogs 15 if people lt cats print too much cats if people gt cats print not many cats if
  • perl内置的DATA文件句柄

    当前 个人使用 最常见的perl脚本应用场景是针对文本的操作 编写perl脚本的时候 经常要手动创建一个待处理的文本 其实 perl内置了一个DATA文件句柄 就是为了perl脚本测试用的 mark 记录一下 usr local bin p
  • 使用IntelliJ IDEA 15和Maven创建Java Web项目

    1 Maven简介 相对于传统的项目 Maven 下管理和构建的项目真的非常好用和简单 所以这里也强调下 尽量使用此类工具进行项目构建 它可以管理项目的整个生命周期 可以通过其命令做所有相关的工作 其常用命令如下 mvn compile m
  • 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)

    阅读目录 一 什么是SourceMap 二 理解webpack中的SourceMap的eval inline sourceMap cheap module 三 开发环境和线上环境如何选择sourceMap 回到顶部 一 什么是SourceM
  • 【vue】vue2.5的使用

    简单的vue实例包含一个index html主页文件 一个vue js框架文件 一 标签数据绑定 引用实例中data数据 1 插值表达式 div msg div 2 v text data中属性名 div div 3 v html data
  • 零拷贝的实现原理

    文章目录 引入 DMA PageCache 零拷贝 mmap sendfile SG DMA 使用零拷贝技术的项目 引入 在Java架构直通车 Kafka介绍和高性能原因一节中 介绍了Kafka的Zero Copy技术 本文将深入探究一下Z
  • docker安装和基本操作

    简介 docker的三个基本概念 镜像 Image Docker 镜像可以看作是一个特殊的文件系统 除了提供容器运行时所需的程序 库 资源 配置等文件外 还包含了一些为运行时准备的一些配置参数 如匿名卷 环境变量 用户等 容器 Contai