Docker入门 _看完即掌握

一.什么是Docker?

百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker官网:http://www.docker.com

二.为什么说Docker是容器化技术?

容器化技术的特点:标准化:每个容器都是标准化、可移植的,因为他们直接运行在宿主机的内核上隔离:容器互相隔离,互不干扰,独立运行高性能:容器性能开销极低,可以实现分钟级甚至秒级的部署和启动版本:CE(Community Edition:社区版)和 EE(Enterprise Edition:企业版)

三.Docker 理念

Build,Ship and Run Any App,Anywhere,在任何地方构建、 发布并运行任何应用程序(一次封装,到处运行)

四.Docker 架构

docker 由三部分组成:

Client 客户端docker 主机Registry 镜像仓库服务器

docker daemon:

docker 安装后,会以后台运行、守护进程的形式存在images 镜像: 镜像可以用来创建 docker 容器,一个镜像可以创建很多容器containers: 镜像和容器的关系类似面向对象设计中的类和对象, 镜像是容器的模板,容器是基于镜像创建出来的。 容器可以被创建、启动、停止、删除等等。

Registry:

镜像注册服务器 https://hub.docker.com 一个 docker Registry(仓库注册服务器) 中可以包含多个 Repository(仓库); 每个仓库可以包含多个标签/版本(Tag);每个标签对应一个镜像。 仓库分为公开仓库(Public)和私有仓库(Private)两种形式,公开仓库就是 docker 官方仓库,私有仓库是自己搭建的 docker 私服

Client:

docker 终端 安装好 docker 中,同时包含了 docker 客户端,客户端负责执行 docker 命令, 发送给 docker 主机中的 docker 守护进程,例如:从仓库下载镜像,通过镜像创 建容器等等

五.CentOS7 安装 docker

(1)安装需要的软件包:

yum install -y yum-utils device-mapper-persistent-data lvm2

(2)设置 docker 下载镜像(推荐用阿里云,一个字:快)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

(3)更新 yum 软件包索引

yum makecache fas

(4)安装 DOCKER CE (社区版)

yum install -y docker-ce docker-ce-cli containerd.io

注意第一次安装可能会出现错误,重新执行一下安装的命令就好了

(5)启动 docker

systemctl start docker # 启动docker

systemctl enable docker # 设置开机自启动

(6)查看版本

docker version

(7)docker 卸载,一次执行下面的三行命令

systemctl stop docker

yum remove -y docker-ce

rm -rf /var/lib/docker

六.配置阿里云镜像服务加速器

七.Docker 常用命令

(1).Docker 基本命令

版本信息:docker version

详细信息:docker info

帮助文档:docker --help 列出所有的docker命令

(2)Docker服务相关命令

启动Docker服务:systemctl start docker

关闭Docker服务:systemctl stop docker

查看Docker状态:systemctl status docker

重启Docker服务:systemctl restart docker

设置Docker服务跟随虚拟机开机自启:systemctl enable docker

取消Docker服务跟随虚拟机开机自启:systemctl disable docker

(3)Docker 镜像命令(docker官方镜像网站)

查看所有的本机镜像:docker images [-q|--no-trunc],-q:查看镜像ID --no-trunc:查看完成的镜像ID

查找镜像:docker search 镜像名称

下载镜像:docker pull 镜像名称:版本号,不加版本号默认是latest最新版

删除镜像:docker rmi [-f] 镜像名|镜像ID:版本号,删除指定版本镜像,版本为latest版本号可以省略,[-f]:强制删除

批量删除:docker rmi [-f] mysql tomcat redis ,除多个镜像,使用空格间隔不同的镜像名称

我就不演示了

删除全部镜像:docker rmi -f $(docker images -q)

我就不演示了

查看镜像详情:docker inspect 镜像名|镜像ID

(4)容器操作

列出所有正在运行的容器,不包含已停止的容器(容器怎么运行可以看后面):docker ps

列出当前所有已经创建的容器:docker ps [-aq]

创建容器:

docker create 镜像名称 # 根据镜像名创建一个容器

docker create --name tomcat1 镜像名称 # 根据镜像创建名为 tomcat1 的容器

docker create 镜像 id # 根据镜像 id 新建一个容器

启动、停止、重启容器:

docker start 容器名|容器ID

docker stop 容器名|容器ID

docker restart 容器名|容器ID

docker kill 容器名|容器ID 根据容器名强制停止一个容器

创建并启动容器:docker run --name tomcat2 tomcat

当本地镜像存在时,相当于 docker create + docker start

当本地镜像不存在时,相当于 docker pull + docker create + docker start

删除容器:

docker rm 容器名称 #删除未启动的容器

docker rm -f 容器名称 #强制删除已启动的容器

docker rm -f $(docker ps -qa) #删除所有容器,包括正在运行的容器

我就不演示了

docker ps -a -q | xargs docker rm #删除所有容器,不包括正在运行的容器

我就不演示了

交互式启动:docker run -it --name qiu 镜像名|镜像ID

进入容器:docker exec -it 容器ID|容器名称 /bin/bash

退出容器:

ctrl + p + q # 不停止退出容器

exit #容器停止退出,此时执行

启动守护式容器:docker run -d --name qiu 镜像名|镜像ID

推荐直接使用:docker run -itd --name qiu 镜像名|镜像ID

八.数据卷

(1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中

(2)解决了什么问题?例如:MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失

(3)安装centos:7镜像:docker pull centos:7

(4)做一个例子

将宿主机根目录中的 qiu 挂载到容器根目录中的 qiu

(5)挂载数据卷

docker run -itd -v /qiu:/qiu --name myMysql mysql

-v:挂载数据卷格式:/宿主机目录(文件):/容器内目录(文件)目录必须是绝对路径如果目录不存在,则自动创建可以挂载多个数据卷

(6)查看数据卷是否挂载成功

docker inspect myMysql

(7)数据共享

首先进入容器,在容器的数据卷挂载目录中创建文件并写入内容

然后退出容器,查看宿主机挂载目录,可以看到同步更新的文件

(8)数据的同步

首先停止容器

然后在宿主机修改共享数据 接下来启动前面的容器,

查看共享数据文件,发现数据在容器中同步

(9)数据的持久化

首先删除容器

然后在宿主机修改共享数据

接着重新创建容器并挂载数据卷

发现数据在容器中恢复

(10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷

docker run -it -v /dataVolumeHost31:/dataVolumeContainer31 -v /dataVolumeHost32:/dataVolumeContainer32 --name centos3 centos:7

docker run -it -v /dataVolumeHost:/dataVolumeContainer4 --name centos4 centos:7

docker run -it -v /dataVolumeHost:/dataVolumeContainer5 --name centos5 centos:7

九.应用部署

(1)部署 tomcat

创建并运行tomcat容器

docker run -d -p 8080:8080 -v /docker/tomcat/webapps:/usr/local/tomcat/webapps -v /docker/tomcat/logs:/usr/local/tomcat/logs --name qiu_tomcat tomcat:8.5

准备一个index.html页面,使用 ftp 工具上到 /docker/tomcat/webapps/qbb 中

浏览器访问一下:http://192.168.137.72:8080/qbb/

也可以查看一下tomcat的日志:docker logs -tf --tail 20 atguigu_tomcat

(2)部署MySQL

docker run -d -p 3306:3306 -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/logs:/logs -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name atguigu_mysql mysql:5.7

十.docker 容器化技术和虚拟机技术

十一.镜像制作

(1)方式一:通过容器制作镜像

①生成镜像

docker commit 容器名 镜像名称:版本号

②压缩镜像

docker save -o 压缩文件名称 镜像名称:版本号

③还原镜像

docker load -i 压缩文件名称

Docker

一.什么是Docker?

二.为什么说Docker是容器化技术?

三.Docker 理念

四.Docker 架构

五.CentOS7 安装 docker

(1)安装需要的软件包:

(2)设置 docker 下载镜像(推荐用阿里云,一个字:快)

(3)更新 yum 软件包索引

(4)安装 DOCKER CE (社区版)

(5)启动 docker

(6)查看版本

(7)docker 卸载,一次执行下面的三行命令

六.配置阿里云镜像服务加速器

七.Docker 常用命令

(1).Docker 基本命令

(2)Docker服务相关命令

(3)Docker 镜像命令(docker官方镜像网站)

(4)容器操作

八.数据卷

(1)什么是数据卷:数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于 docker 文件 系统的形式存在于宿主机中

(2)解决了什么问题?例如:MySQL 容器损坏无法启动,需要删除容器重新创建,那么数据库数据将会丢失

(3)安装centos:7镜像:docker pull centos:7

(4)做一个例子

(5)挂载数据卷

(6)查看数据卷是否挂载成功

(7)数据共享

(8)数据的同步

(9)数据的持久化

(10)一个容器挂载多个数据卷,两个容器挂载同一个数据卷

九.应用部署

(1)部署 tomcat

(2)部署MySQL

十.docker 容器化技术和虚拟机技术

十一.镜像制作

(1)方式一:通过容器制作镜像

①生成镜像

②压缩镜像

③还原镜像

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容