Docker教程(1),高级程序员面试题

• 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 镜像原理

思考:

  1. Docker
    镜像本质是什么?


是一个分层文件系统。

  1. Docker
    中一个
    centos
    镜像为什么只有
    200MB
    ,而一个
    centos
    操作系统的
    iso
    文件要几个个
    G

• Centos

iso
镜像文件包含
bootfs

rootfs
,而
docker

centos
镜像复用操作系统的
bootfs
,只有
rootfs
和其他镜像层。

  1. Docker
    中一个

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

==

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-XLGLqmMa-1712657097095)]

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值