• Docker
是一个开源的应用容器引擎,解决软件跨环境迁移的问题。
•
诞生于
2013
年初,基于
Go
语言实现,
dotCloud
公司出品(后改名为
Docker Inc
)
• Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到 任何流行的 Linux
机器上。
•
容器是完全使用沙箱机制,相互隔离
•
容器性能开销极低。
• Docker
从
17.03
版本之后分为
CE
(
Community Edition:
社区版) 和
EE
(
Enterprise Edition:
企业版)
安装docker
Docker可以运行在MAC、Windows、CentOS、UBUNTU等操作系统上,本课程基于CentOS 7 安装 Docker。
在shell中输入如下命令
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
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、 安装docker,出现输入的界面都按 y
yum install -y docker-ce
5、 查看docker版本,验证是否验证成功
docker -v
docker架构
• **镜像(Image):**Docker 镜像(Image),就相当于是 一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包 含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
•
容器(
Container
)
:镜像(
Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
•
仓库(
Repository):仓库可看成一个代码控制中心,用来保存镜像。
配置 Docker 镜像加速器
默认情况下,将来从
docker hub
(
https://hub.docker.com/
)上下载docker
镜像,太慢。
一般都会配置镜像加速器:
• USTC
:中科大镜像加速器(
https://docker.mirrors.ustc.edu.cn
)
•
阿里云
•
网易云
•
腾讯云
阿里云配置步骤:
1、打开阿里云官网
2、
3、
4、cat /etc/docker/daemon.json
Docker 命令
进程相关命令
启动docker服务:
systemctl start docker
停止
docker
服务
:
systemctl stop docker
重启
docker
服务
:
systemctl restart docker
查看
docker
服务状态
:
systemctl status docker
如下图:按q退出到命令提示符状态
设置开机启动
docker
服务
:
systemctl enable docker
镜像相关命令
查看镜像: 查看本地所有的镜像
docker images
docker images –q #
查看所用镜像的
id
搜索镜像
:
从网络中查找需要的镜像
docker search
镜像名称
拉取镜像
:
从
Docker
仓库下载镜像到本地,镜像名称格式为 名称
:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去
docker hub
搜索对应镜像查看。
docker pull
镜像名称
删除镜像
:
删除本地镜像
docker rmi
镜像
id 或者镜像名称 #
删除指定本地镜像
docker rmi docker images -q
#
删除所有本地镜像
容器相关命令
查看容器
docker ps #
查看正在运行的容器
docker ps –a #
查看所有容器
创建并启动容器
docker run
参数 镜像名称
例如:docker run -it --name=c1 centos:7 /bin/bash
参数说明:
• -i
:保持容器运行。通常与
-t
同时使用。加入
it
这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
• -t
:为容器重新分配一个伪输入终端,通常与
-i
同时使用。
• -d
:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用
docker exec
进入容器。退出后,容器不会关闭。
• -it
创建的容器一般称为交互式容器,
-id
创建的容器一般称为守护式容器
• --name
:为创建的容器命名。
退出容器
exit
进入容器
docker exec
参数
#
退出容器,容器不会关闭
例如:docker exec -it c1 /bin/bash
停止容器
docker stop
容器名称
启动容器
docker start
容器名称
删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker rm
容器名称
查看容器信息
docker inspect
容器名称
Docker 容器数据卷
数据卷概念
思考:
1、Docker 容器删除后,在容器中产生的数据还在吗?不在
2、Docker 容器和外部机器可以直接交换文件吗?不可以,如下图:
3、容器之间想要进行数据交互?不可以
以上问题,可以通过数据卷解决。
数据卷 如下图:
•
数据卷是宿主机中的一个目录或文件
•
当容器目录和数据卷目录绑定后,对方的修改会立即同步
•
一个数据卷可以被多个容器同时挂载
•
一个容器也可以被挂载多个数据卷
数据卷作用
•
容器数据持久化
•
外部机器(或者叫客户端)和容器间接通信
•
容器之间数据交换
配置数据卷
创建启动容器时,使用 –v 参数 设置数据卷
docker run …
–v
宿主机目录
(
文件
):
容器内目录
(
文件
) …
例如:
docker run -it --name=c2 -v /root/data:/root/data_container centos:7 /bin/bash
如果命令太长,可以分行写,用反斜杠连接:
docker run -it --name=c3 \
> -v ~/data2:/root/data2 \
> -v ~/data3:/root/data3 \
> centos:7 /bin/bash
注意事项:
目录必须是绝对路径
如果目录不存在,会自动创建
可以挂载多个数据卷
数据卷容器
多容器进行数据交换,两种方式:
多个容器挂载同一个数据卷
数据卷容器,如下图:
配置数据卷容器
创建一个容器,挂载一个目录,让其他容器继承自该容器( --volumes-from )。
1. 创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3
–v /volume
centos:7 /bin/bash
创建启动
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 应用部署
Dockerfile
Docker 镜像原理
思考:
- Docker
镜像本质是什么?
•
是一个分层文件系统。
- Docker
中一个
centos
镜像为什么只有
200MB
,而一个
centos
操作系统的
iso
文件要几个个
G
?
• Centos
的
iso
镜像文件包含
bootfs
和
rootfs
,而
docker
的
centos
镜像复用操作系统的
bootfs
,只有
rootfs
和其他镜像层。
- Docker
中一个
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
==
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-XLGLqmMa-1712657097095)]