what 什么是docker?

  • dockker就想它的logo一样,docker是一只大鲸鱼,然后每个镜像container就是对应的集装箱
  • docker是一款用go语言开发的容器
  • docker的核心思想就是隔离,通过隔离机制,既可以保障每个集装箱里面的东西是互不影响的,也可以将服务器的资源压榨到最大程度。

what docker能干嘛?

下图展示了没有docker的部署上线和有docker之后的部署上线差异:

docker与虚拟机的区别


VM与docker的区别:

  1. VM会虚拟出完整的操作系统(windows、linux),而docker直接运行在宿主机的内核上没有自己的内核和虚拟硬件,所以更加小巧轻便
  2. VM是操作系统级别的虚拟化,docker是内核级别的虚拟化
  3. VM比docker更重,更消耗资源,所以docker启动速度远远快于VM
  4. docker可以实现快速的运维部署
  5. docker更便捷的升级和扩容/缩容
  6. 可以更高效的利用物理机的硬件资源

安装docker

官方安装步骤: https://docs.docker.com/get-started/overview/

  1. 安装之前先卸载老版本

    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
  2. 使用仓库进行安装:
    sudo yum install -y yum-utilssudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
  3. 安装docker引擎
    sudo yum install docker-ce docker-ce-cli containerd.io
    
  4. 启动docker
    sudo systemctl start docker
    
  5. 验证docker引擎是否安装完毕
    sh sudo docker run hello-world

docker命令

docker命令大全可以参考如下图所示:

docker启动相关指令

# 查看下载的镜像列表
docker images
# 重新加载docker
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
# 配置docker国内镜像地址(加快镜像下载速度)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors":["https://aa25jngun.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker基础命令

官网文档链接:https://docs.docker.com/reference/

# 查看版本
docker version
# 显示docker的信息
docker info
# 帮助命令
docker [命令] --help
## 查看运行中的容器
docker ps
# 查看容器的top信息
docker top [容器id]
# 查看容器元数据信息
docker inspect [容器id]
# 进入容器
docker attach [容器id]
# 将主机重的文件拷贝到容器
docker cp SRC_PATH [容器id]:DEST_PATH
# 将容器中的文件拷贝到主机中
docker cp [容器id]:SRC_PATH DEST_PATH
# 查看容器状态
docker status

常用镜像命令

# 列出本机所有镜像
docker images
# 搜索镜像(可以在docker hub上进行搜索 <https://hub.docker.com/>)
docker search rabbitmq
# 下载最新镜像
docker pull rabbitmq
# 下载指定版本镜像
docker pull rabbitmq:3.8.11
# 删除镜像
docker rmi -f [IMAGE ID]
docker rmi -f [IMAGE ID] [IMAGE ID] [IMAGE ID]
docker rmi -f ${docker images -aq}

常用容器命令

# 运行容器
docker run [可选参数] image
# 查询容器列表
docker ps [OPSTIONS]
# 退出容器
exit、CTRL+D、CTRL+P+Q
# 删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# 启动&重启容器
docker start [容器id]
docker restart [容器id]
# 停止正在运行的容器
docker stop [容器id]
# 强制停止当前容器
docker kill [容器id]

docker镜像原理

镜像是一种轻量级、可执行的独立软件包。保护代码、运行时、库、环境变量和配置文件。所有应用直接打包docker镜像就可以直接跑起来。

获得镜像方式

  1. 从远程仓库下载
    在下载的时候,可以看到是一层层下载,这个就是联合文件系统UnionFS。
  2. 通过传输拷贝方式获得
  3. 自己通过DockerFile制作镜像

镜像加载原理

提交镜像

提交容器,成为一个新的副本
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

数据容器卷

如前面介绍的,docker是将应用和环境统一进行了打包。如果删除容器的话,数据也会被同时删除,那么,如果我们有数据持久化需求,或者容器之间数据共享的需求,则就需要用到容器数据卷

我们发现, 删除了museCentOS03之后, museCentOS02里的muse01目录下依然有a.txt文件, 这就表明了,museCentOS01~museCentOS03 这三个容器中a.txt文件是互相同步复制备份的。 而并不是同享了某个目录, 大家都去查看一个备份。

挂载操作

执行挂载(把本机路径/home/muse/test, 挂在到centos容器的/bin/bash目录下)
docker run -it -v /home/muse/test:/home centos /bin/bash

# 查看挂载内容(上面run的容器id就是da6268d8ac0a)
docker inspect da6268d8ac0a

匿名挂载:
通过-v 指定容器内路径
docker run -d -P --name nginx1 -v :/etc/nginx nginx

具名挂载(常用方式):
通过-v 卷名:容器内路径, 指定具名挂载
docker run -d -P --name nginx2 -v nginx2:/etc/nginx nginx

常用挂载相关命令

  • 查看挂载列表
    docker volume ls

  • 查看挂载信息
    docker volume inspect [VOLUME]

DockerFile构建镜像

  1. 在项目根目录下下创建一个dockerfile文件
  2. 编写DockerFile(命令大写)
FROM centos
VOLUME ["muse01","muse02"]
CMD echo "------finish------"
CMD /bin/bash
  1. 构造镜像
    docker build -f /home/{项目根目录}/dockerfile -t muse/centos:1.0
  2. 启动自己构建的镜像(通过docker images查询出IMAGE ID为eb78333356a6 )
    docker run -it eb78333356a6 /bin/bash

相关资料

  • docker官方文档:https://docs.docker.com/get-started/
  • docker hub:https://hub.docker.com/

Docker入门与实战相关推荐

  1. Docker入门与实战讲解

    × 首页 博客 学院 下载 GitChat TinyMind 论坛 问答 商城 VIP 活动 招聘 ITeye CSTO 写博客 发Chat 登录注册 relax_hb的博客 RSS订阅 原 Dock ...

  2. docker入门与实战pdf_Docker-Kubernetes-k8s微服务实战视频教程+Docker技术入门精讲课程资料分享...

    一.简介 1)Docker Docker是Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0协议开源 ...

  3. 运维(37) Docker入门到实战

    文章目录 一.Docker是什么? 二.Docker安装与卸载 1.安装 2.配置镜像加速器 3.卸载 三.Docker运行Nginx 四.Docker运行Java项目 五.Docker常用命令 六. ...

  4. Docker 入门到实战 之 安装RocketMQ

    --- Don`t be the same, be better!---         RocketMQ 是一个队列模型的消息中间件,具有高性能.高可靠.高实时.分布式特点. 具体的描述可参考官网文 ...

  5. Docker 入门到实战 之 安装SVN

    1.镜像下载 查找镜像 docker search svn 拉取镜像 docker pull docker.io/garethflowers/svn-server 查看镜像 docker images ...

  6. Docker 入门到实战教程(一)介绍Docker

    一. Docker简介 1.1 什么是虚拟化? 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现 ...

  7. 《Docker技术入门与实战》pdf

    下载地址:网盘下载 内容简介  · · · · · · [编辑推荐] <Docker技术入门与实战>是中国首部Docker著作,一线Docker先驱实战经验结晶,来自IBM和新浪等多位技术 ...

  8. 《Docker技术入门与实战》——2.4 本章小结

    本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.4节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  9. 《Docker技术入门与实战》——2.3 本书环境介绍

    本节书摘来自华章计算机<Docker技术入门与实战>一书中的第2章,第2.3节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

最新文章

  1. Redis 未授权访问漏洞
  2. 代码review工具:Review Board
  3. python异常(高级) Exception
  4. python删除特定的几行数据_Python:分成几行,并根据搜索删除特定行 - python
  5. 常用的色彩名、色彩值的对照表
  6. tinymce 富文本简单使用
  7. 敏捷开发任务看板_看板方法的进化论:从丰田精益方法到敏捷研发
  8. Speaker Recognition: Feature Extraction
  9. poythoncode-实战4--读取文本文件,csv文件,存到系统中以大列表方式进行存储
  10. Xamarin iOS教程之使用按钮接接收用户输入
  11. flash用的什么语言
  12. 进程管理软件SysCheck使用指南
  13. 让他们有事可做( 云中漫步zai)
  14. vscode 设置setting文件
  15. apmserv mysql5.1启动失败,win10系统无法正常运行apmserv显示apache和mysql启动失败怎么办...
  16. DataWhale天池-金融风控贷款违约预测-Task01赛题理解
  17. 文档扫描OCR识别-2
  18. hmmer 使用(转载)
  19. arnold如何设置鱼眼相机_关于C4D阿诺德的摄像机参数详解
  20. HTML中的语义化标签

热门文章

  1. HTML中光移动边框,CSS 边框各边
  2. import qs from qs 安装_Python 导包难道你只会个 import 吗?
  3. python读取npy文件的列表_Python,NPY文件,pk3,Python3,读取,h5pklnpznpy,格式,的
  4. java 高德地图数据库_【爬虫】Java关于高德地图爬取数据
  5. Report Builder 3.0连接ORACEL数据库
  6. 学习ActiveMQ(五):activemq的五种消息类型和三种监听器类型
  7. “一休数学思维”改名“海豚思维”,并完成数千万元Pre-A轮融资
  8. 自媒体公约:良性发展大于利益本能
  9. Windows server 2012 安装exchange 2013
  10. “猫癣”集团借IE7新漏洞再掀风浪