一、Docker的三大组件

要想使用Docker,就要先了解Docker的一些基本概念,首先要了解的是Docker的三大组件,分别是仓库、镜像、容器;

仓库(也有叫Registry(注册中心))

Docke中仓库的概念,有点类似与GitHub的仓库的概念,不过GitHub的仓库是存着大量的开源项目,而Docker的仓库存储的是用户构建的镜像,仓库又分为公有仓库和私有仓库;

1、官方公共仓库

Docker Hub(因为直接使用官方仓库下载镜像,速度有点让人堪忧,所以出现了大量的镜像仓库,大大提升了下载速度)

2、镜像仓库
  1. ustc的镜像(文章中使用的该镜像仓库)
  2. 网易163 docker镜像
  3. daocloud
  4. alicloud

镜像

如果说仓库类似GitHub的仓库的概念,那么镜像就类似于仓库中的一个个开源项目,全世界的开发人员都可以在仓库中找到合适的镜像(比如redis镜像,centos镜像等)下载到自己的机器上;

容器

就好像我们在GitHub上下了一个或多个项目,我们可以根据自己的需求,解压,运行,部署这些项目;当我们有了镜像之后,我们就可以通过一些指令让这些镜像运行为一个容器,接着我们可以在容器内部和宿主机(就是你装Docker的机器)进行一些容器的相关操作;

二、Docker的基本使用

Ⅰ、设置镜像仓库

结合Docker的三大组件,我们要使用Docker,就是对这三大组件进行操作,首先,我们需要设置Docker的镜像仓库;

vi /etc/docker/daemon.json//固定文件名,固定写法
//在文件中输入以下内容
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
//esc退出编辑状态 再使用 shift + : 后输入wq保存退出

Ⅱ、操作镜像

设置好了镜像仓库,此时我们就可玩玩镜像了,
      1、查看镜像:docker images查看当前本地镜像

docker images //此时我们机器上应该是没有镜像的

2、搜索镜像:docker search 镜像名(支持模糊查询)

docker search redis

3、下载镜像:docker pull 镜像名

docker pull 镜像名称

4、删除镜像:docker rmi 镜像id

docker rmi e6cf45bda546 //rmi后是镜像id
//删除所有镜像,基本用不上
docker rmi `docker images -q`

Ⅲ、操作容器

当我们下载了我们需要的镜像之后,我们就可以开始创建和使用容器了

1、查看容器

使用docker ps 查看正在运行的容器
      使用docker ps -a 查看所有容器
      使用docker ps -l 查看最后一次运行的容器
      使用docker ps -f status=exited 查看当前运行状态为exited的容器

2、 创建和启动容器

A、只创建不运行容器:docker create --name 容器名 镜像名:镜像标签

docker create --name mynginx02 nginx:latest

B、创建并运行容器并进入容器的命令行(exit退出命令行后容器就停止运行了)

docker run -ti --name mycentos04 centos:latest
// -t 代表terminal 表示进入命令行
// -i 代表init 代表初始化容器


      Notes:以该模式创建的在容器内部命令行执行exit命令时,会停止运行

C、创建并后台运行容器

docker run -di --name mycentosDaemon centos:latest
// -d 代表daemon 表示以守护进程方式启动容器

D、 在容器后台运行时进入容器内部命令行
      如果我们以守护进程方式启动的容器,或者我们使用docker start 启动的容器;而此时我们要进入容器中进行参数配置或者进行其他操作,此时则需要使用:docker exec -it 容器名或容器id /bin/bash命令

docker exec -it mycentosDaemon /bin/bash


      E、启动和停止容器
      对于使用docker create和使用docker run -ti 创建并退出的容器,状态是exited,此时我们需要使用docker start 容器名或容器id启动;

docker start  mycentos04

3、文件复制与目录同步挂载

A、文件复制

宿主机————>容器内
           docker cp 需要拷贝的文件或目录 容器名称:容器目录
      容器内————>宿主机
           docker cp 容器名称:容器目录 需要拷贝的文件或目录

//宿主机————>容器内
docker cp a.txt mycentosDaemon:/usr/wlt///容器内————>宿主机
docker cp mycentosDaemon:/usr/wlt/a.txt /usr/wlt/



      B、目录同步挂载
      可以将宿主机的某个目录和容器的目录进行同步挂载(即宿主机目录内容改变,容器内对应目录内容发生改变)
      使用docker run -v 宿主机目录:容器目录;


docker run -di -v /usr/test/:/usr/local/test --name=mycentos05 centos:latest

4、查看运行中容器的信息

使用命令: docker inspect + 容器名或容器id
     可以查看容器的一些信息,例如使用了哪个镜像、Ip地址、目录挂载情况等;

docker inspect mycentos05

总结

本篇主要介绍了docker的基本使用,下一篇主要使用docker进行应用的部署、以及使用dockerFile脚本操作容器以及容器的迁移与备份(因为容器的特性就是便于移植);

(Docker实战)在CentOS7上使用Docker;(超详细、附图、附代码)相关推荐

  1. 一篇搞定css基础(超详细,附代码)

    第一章:css概述 1.1.css的简介 1)什么是CSS css中文名称叫层叠样式表,层叠为css的布局,表示布局方式是通过一层层来实现的:样式是布局层的显示效果,主要是通过css提供的一些属性和属 ...

  2. Docker实践(6)—CentOS7上部署Kubernetes

    Kubernetes架构 Kubernetes的整体架构如下: Master为主控节点,上面运行apiserver,scheduler,controller-manager等组件.Minion相当于工 ...

  3. K8S实战:Centos7上集群部署

    K8S实战:Centos7上集群部署 更多技术类博文,请关注微信公众号:运维之美. 集群架构 k8s集群的架构 master节点:etcd,api-server,scheduler,controlle ...

  4. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具appium工具(17) Appium是一个开 ...

  5. 「docker实战篇」python的docker爬虫技术-安卓模拟器(二)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「docker实战篇」python的docker爬虫技术-安卓模拟器(二) 为什么要手机模拟器,如果有条件正好有不使用的安卓手 ...

  6. python docker自动化_「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15)...

    原创文章,欢迎转载.转载请注明:转载自 IT人故事会,谢谢! 原文链接地址: 「docker实战篇」python的docker爬虫技术-移动自动化控制工具安卓ADB的使用(15) adb(Androi ...

  7. 「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:「docker实战篇」python的docker爬虫技术-在linux下mitmproxy介绍和安装(四) 上次说了fiddl ...

  8. 降维算法总结(超全!附代码)

    降维算法总结(超全!附代码) 一.为什么要进行数据降维? 二.数据降维原理 三.主成分分析(PCA)降维算 PCA代码实现 四.其他降维算法及代码地址 效果总览及代码地址 KPCA(kernel PC ...

  9. 【Linux】CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享

    [Linux]CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享 Ngnix基本概况 Nginx (读作"engine X") 由 ...

  10. mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解

    mybatis-generator生成带中文注释POJO类的超详细教程含代码和图解 mybatis-generator自动生成带中文注释POJO类和增删改查,idea和eclipes都可以使用 MyC ...

最新文章

  1. 区块链3.0:拥抱EOS
  2. 无人配送的Nuro再融5亿美元,为啥中国复刻者们没它这么火
  3. 【重磅】央行发大招!最全面的支付安全风险大检查来了……
  4. java 文件上传至oracle blob字段 实现
  5. 计算机知识问答一站到底,一站到底的答题规则是什么
  6. 多元函数梯度下降 java_机器学习知识点(五)梯度下降法Java实现
  7. 机构借贷平台 Maple 将上线以太坊主网并开启流动性挖矿
  8. 项目中碰到的ExceptionInInitializerError异常
  9. LINUX开发FIREFOX的插件:编译npruntime
  10. selenium-js
  11. Js脚本之jQuery学习笔记(1)
  12. 怎么注册DLL到注册表
  13. 图神经网络(ICML2022)
  14. 一切从零开始------软件篇
  15. 盘点最近 火火火火 的 GitHub 项目
  16. 数据结构之图(二)——邻接矩阵
  17. php的表达爱意的一句代码,一句表达爱意的古词 最能表达爱的一句话
  18. 河北省保定市谷歌卫星地图下载
  19. Modeling-Relational-Data-with-Graph-Convolutional-Networks-阅读笔记
  20. 自定义通信协议设计之TLV编码应用

热门文章

  1. java写pdf中文不显示_java – iText pdf在使用NOTO字体或Source Hans时不显示中文字符...
  2. 凌波微课|南农大资环学院钟山学术讲坛第五十四讲——特邀南京师范大学戴传超教授
  3. 索尼入局汽车市场,新能源汽车将成主流
  4. 京东金融支持的银行卡只有几张
  5. win10设置pin一直转圈_Win10 自带手机投屏功能,80% 的人居然都不知道
  6. Linux系统下C语言实现遍历该目录下所有文件
  7. PowerDesigner根据数据库生成数据字典
  8. ansys经典界面分析工字钢_ansys工字钢实例分析.doc
  9. opengl 画椭圆_如何画椭圆的共轭半径及其他......
  10. 转:比谎言更可怕的,是对真相视而不见