自勉,持续学习,docker入门

  • 简介
    • 一、 docker 的基本架构
    • 二、安装 docker
    • 三、 image 镜像
    • 四、容器
    • 五、数据卷概念
      • 配置数据卷
      • 配置数据卷容器

简介

记住重要的几点:

  1. Docker 是一个开源的应用容器引擎
  2. 诞生于 2013 年初,基于 Go 语言实现
  3. 独特的容器技术,避免了不同环境下的部署问题。
  4. 容器是完全使用沙箱机制,相互隔离
  5. 容器性能开销极低

一、 docker 的基本架构

  • 镜像(Image): Docker 镜像(Image),就相当于是 一个 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Contain er)的关系,就像是面向对象程序设计中的类和对象一 样,镜像是静态的定义,容器是镜像运行时的实例,我们可以把镜像理解成模板,而容器是一个个的复制品。一个镜像可以创建多个容器,每个容器的环境也是独立而统一的。
  • 仓库(Repository):仓库可看成一个代码控制中心, 用来保存镜像,可以类比成 Maven 仓库。

二、安装 docker

Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本演示我们基于CentOS 7 安装
Docker。
官网:https://www.docker.com

# 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# *************** 以上操作,在镜像中都已经安装完成!****************************8
# 5、 查看docker版本,验证是否验证成功
docker -v

至此,我们 docker 就安装好勒, 我们可以学习一下 docker 的命令:

# 启动 docker 服务
systemctl start docker # systemctl 是 system ctrl 缩写
# 停止 docker 服务
systemctl stop docker
# 查看docker服务状态
systemctl status docker
# 开机启动docker服务
systemctl enable docker

三、 image 镜像

下载 Image 需要配置 Image 仓地址,采用默认仓下载速度较慢,这里我们采用阿里云的 Image 仓地址下载。

  1. 登陆阿里云账号,https://www.aliyun.com/。
  2. 搜索栏搜索镜像
  3. 查看文件/etc/docker/daemon.json,确认文件已被修改
# 执行如下命令:
cat /etc/docker/daemon.json

至此,我们的 Image 仓算是配好了,但是我们还没有下载镜像,在下载镜像之前,我们先学习一下docker 关于镜像的命令。

# 查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id# 从网络中查找需要的镜像
docker search 镜像名称
eg:
docekr search redis# 拉取镜像
docker pull 镜像名称
docker pull 镜像名:<version>
eg:
docker pull mysql:5.7# 删除镜像
docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像

四、容器

上文说过,镜像和容器的关系可以理解成模板和复制品,现在模板有了,我们需要创建复制品(容器)。
安装之前,我们还是按例学习一下容器相关的命令:

# 查看容器
docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器,包括正在运行和停止的容器# 查看容器信息
docker inspect 容器名称或者容器id#  创建并启动容器
docker run 参数
eg:
docker run -id --name=容器名 centos:7 #守护式创建:  创建容器后,不进入容器内部;   ---> 只要不手动停止,会一直在后台运行!
docker run -it --name=容器名 centos:7 #交互式创建:  创建容器后,直接进入容器内部;  ---> 如果退出容器,容器自动停止!
# 进入容器
docker exec 参数 # 退出容器,容器不会关闭
eg:
docker exec -it mycentos2 /bin/bash# 停止容器
docker stop 容器名称或者容器id# 删除容器
docker rm 容器名称或者容器id
# 删除所有容器:
docker rm `docker ps -aq`

好啦, 命令学完了,我们开始部署容器吧。
我们还是以 MySQL 为例:

# 部署
docker run -it  --name my_container centos:7

五、数据卷概念

在学习这个问题之前,我们需要先问几个问题:

  1. Docker 容器删除后,在容器中产生的数据还在吗?(会随之销毁 )
  2. Docker 容器和外部机器可以直接交换文件吗? (不可以,docker和外部机器是隔离的 )
  3. 容器之间想要进行数据交互?(通过数据卷或者宿主容器)

那我们如何理解数据卷这个概念呢?

  1. 数据卷是宿主机中的一个目录或文件
  2. 当容器目录和数据卷目录绑定后,对方的修改会立即同步,如图所示:
  3. 一个数据卷可以被多个容器同时挂载
  4. 一个容器也可以被挂载多个数据卷

配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
eg:
# 将宿主机 /root/data 目录和 /root/data_container 绑定,任意一边的修改都会同步到另一边。
docker run -it --name C1 -v /root/data:/root/data_container centos:7

配置数据卷容器

多个容器绑定一个数据卷,命令会比较多,关系撸起来也会比较复杂,可以考虑采用数据卷容器的方式,如图:

通过容器 c1 c2绑定数据卷容器 c3 ,再用 c3 绑定数据卷,如此便可以实现 c1 c2 甚至更多的容器数据同步,实现起来也比较简单。
步骤:

# 1.创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash  # volume 是自定义的目录名,/bin/bash 是创建容器时的进入命令,可以不加。# 2.创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash

自勉,持续学习,docker入门相关推荐

  1. Docker学习1——Docker入门

    Docker学习1--Docker入门 参考资料 1.Docker简介 2.尚硅谷2022版Docker实战教程(docker教程天花板) 1.1 Docker简介 1.1.1 Docker引入 假定 ...

  2. 【Docker技术入门与实践(第2版)】Docker入门_学习笔记

    第一章 1 Docker入门须知 1.1 Docker基本知识 Docker是基于Go语言实现的开源容器项目,诞生于2013年年初,最初发 起者是dotCloud公司.Docker自开源后受到广泛的关 ...

  3. Docker入门学习笔记(狂神版)

    下述笔记是自己花一天时间看B站狂神说Docker视频的笔记,下列的笔记是根据自己的实践的记录下来的,若想细学掌握Docker建议自行观看(<Docker入门到精通>),去观看狂胜的视频记得 ...

  4. Docker入门学习笔记

    文章目录 Docker入门学习 Docker为什么出现? 一.Docker的历史 二.Docker做什么 三.Docker 安装 Docker的基本组成 安装Docker 阿里云镜像加速 运行流程 底 ...

  5. docker入门与部署微服务--学习笔记

    最近公司进一步去windows,走向 linux+云化. 原来的一大坨windows虚拟机服务器都要转向linux, 既然走向linux的话,那么docker肯定是要涉足的. 故学习了docker入门 ...

  6. Docker入门学习教程

    Docker入门学习 文章目录 Docker入门学习 1.简介 2 基本概念 2.1 镜像(Image) 2.2 容器(Container) 2.3 仓库(Repository) 3.Windows ...

  7. Docker入门——官方文档学习记录1

    Docker入门 Docker 概述 优势: 体系结构 The Docker daemon The Docker client Docker Desktop Docker Registries Doc ...

  8. Docker入门指南:基于 docker 搭建机器学习/深度学习开发环境

    实际工作中,许多项目开发需要在Linux服务器上进行,本文为习惯使用 Windows 操作系统的朋友介绍一种基于Docker的,跨平台.便携性(方便移植.重新部署.可远程访问)的开发环境搭建方法. 1 ...

  9. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

最新文章

  1. 划重点!2020年,这些前沿技术最受关注
  2. JavaScript之function类型
  3. Object-C 有私有变量?私有方法?
  4. VMWare 虚拟机中安装 CentOS 7
  5. sql组合索引和独立索引_SQL索引概述和策略
  6. scala练习:依据输入的年和月打印该月日历
  7. vue-13-swiper组件的使用
  8. 【python、pyqt5】,打包出现的若干问题
  9. 涨姿势!一文了解深度学习中的注意力机制
  10. html去除分页符,分页符怎么删除 删除分页符的两种方法
  11. excel求和为零的解决方法
  12. 【PHP】解决数据库查询出来的中文内容显示为问号“??”
  13. linux下批量替换文件内容
  14. 更新后的微信新功能,你知道吗?
  15. Pandas 获取列名
  16. 计算机硬盘清理,Win7电脑的磁盘满了怎么办?最简单的清理方法教给你!
  17. 5G/NR CSI学习总结
  18. OpenCV笔记整理【直方图和掩模】
  19. Linux远程桌面连接,Xmanager 5实现远程调用CentOS7图形化界面
  20. java面试:输出学生的成绩 (Java经典编程案例)

热门文章

  1. java 基础知识学习2
  2. DebugView工具使用方法
  3. 二叉树 二叉树遍历 通过二叉树遍历求得二叉树
  4. 网格员计算机考试基础知识,网格员考题_请问下网格员考试的内容题目是什么要复习什么_淘题吧...
  5. 给定一个完全循环赛的比赛结果,其中n个队伍两两比赛一次。每场比赛以一方胜出或者平局结束。设计一个算法,把n个队伍排序,序列中每个队伍都不曾输给紧随其后的那个队伍。说明该算法的时间效率类型。
  6. 位运算符以及他们的用途
  7. Java的同步锁和同步方法(synchronized)
  8. Java SE 005 运算符 续
  9. “收藏本站”,“设为首页”的脚本
  10. Backtrack5 搭建Nessus