一、docker的介绍

1. Docker是什么?

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

详情参考:https://baike.baidu.com/item/Docker/13344470?fr=aladdin

2. Docker与vm(虚拟机)的区别

在比较虚拟机和容器时,请考虑此图:

虚拟机图

虚拟机运行来宾操作系统 - 请注意每个框中的操作系统层。此项为资源密集型,并且生成的磁盘镜像和应用状态与操作系统设置、系统安装的依赖项、操作系统安全补丁以及其他容易丢失且难以复制的临时配置相关联。

容器图

容器可以共享单个内核,并且需要存在于容器镜像中的唯一信息是可执行文件及其软件包依赖项,这些都不需要在主机系统上安装。这些进程的运行方式类似于原生进程,并且您可以通过运行 docker ps 等命令来逐一管理它们 - 如同您在 Linux 上运行 ps 以查看活动进程一样。最后,由于它们包含所有依赖项,因此不存在配置关联;容器化应用“可以随处运行”。

详情参考:https://docs.docker.com/get-started/#containers-and-virtual-machines

3. Docker与VM比较有什么优势

  • Docker容器启动、停止速度较快
  • Docker容器对资源的需求较少
  • Docker容器操作简单
  • Dockerfile自动构建和部署方便

二、镜像操作

1. 下载和删除镜像

# 下载
docker pull <镜像名称>
# 删除
docker rmi <镜像ID>

2. 查看镜像信息

# 查看有两种方式:
--->查看全部镜像信息。包括仓库名、标签信息、镜像ID、创建时间、镜像大小
docker images --->查看特定镜像详细信息
docker inspect <镜像ID>

3. 搜索镜像

# 搜索镜像
docker search <镜像名称>

4. 创建镜像

# 创建镜像有三中方式
--->利用已有的镜像容器创建新的镜像
docker commit -a <作者信息> -m <备注信息> --pause=true --->基于本地已有的镜像模块导入来创建新的镜像
sudo cat <tar.gz> | docker import - <name>:<tag>
https://openvz.org/Download/template/precreated --->使用Dockerfile的配置来创建新的镜像
暂无

5. 保存和载入镜像

# 保存现有的镜像成tar包
docker save -o **.tar <name>:<tag> # 载入本地的tar包到本地的docker系统中.可以使用--input或者<
docker load --input / < **.tar

6. 上传镜像

# 上传镜像.这个需要登陆在docker系统中已有注册账号.
# 官网地址:https://hub.docker.com
docker tag <ID> <accountName>/<imageName>:<tag>
docker push <accountName>/<imageName>:<tag>

三、容器和仓库

1. 创建容器

# 创建容器。只是创建了容器,并没有启动容器
docker create -it <name>:<tag> # 启动容器。启动已经创建的容器
docker start <ID> # 新建并启动容器。功能就是创建和启动两条命令。
docker run -it <ID> /bin/sh # 后台进程方式运行。
docker run -d <ID> /bin/sh -c '命令' # 查看已启动容器
docker ps # 查看logs信息
docker logs <ID>

2. 终止容器

# 终止容器
docker stop <ID>

3. 进入容器

# 进入容器
docker exec -it <ID> /bin/sh

4. 删除容器

# 删除容器; -f 强制删除
docker rm -f <ID>

5. 搭建私有仓库

# 先从docker的公有库拉取这个私有仓库镜像
docker pull registry # -v 的作用是将本地系统的挂载点和容器系统中的挂在点关联起来。
# -p的作用是本地端口与容器端口关联。
docker run -d -v <本地文件系统的挂载点>:<容器文件系统的挂载点> -p <容器系统端口>:<本机系统端口> --restart=always --name registry registry:latest # 访问
http://<本地ip地址>:<容器系统端口>/v2/_catalog

 四、数据卷

管理数据、维护数据的作用. 数据管理容器,类似数据库.

1. 数据卷

# 在容器内创建一个数据卷
docker run -v <host DIR>:<container DIR> <name> <command> eg: docker run -d -P --name web -v /webapp:training/webapp python app.py
  # 这里有个技巧:当有多个数据卷时,可以使用多个-v参数.

2. 数据卷容器

# 数据卷容器. 跟数据卷功能类似,只不过是给数据卷启动了一个容器。
eg: docker run -it -v /dbdata --name dbdata ubuntu docker run -it --volumes-from dbdata --name db1 ubuntu
docker run -it --volumes-from dbdata --name db2 ubuntu dbdata:
---- db1
---- db2

3. 利用数据卷容器迁移数据

# 备份
docker run --volumes-from dbdata -v $(pwd):/backup --name worker tar cvf /backup/backup.tar /dbdata #恢复
docker run -v /dbdata --name dbdata2 ubuntu /bin/bash docker run --volumes-from dbdata2 -v $(pwd):/bankup busybox tar xvf /backup/backup.tar

五、网络配置

1. 访问容器

# -P 随机端口
eg: docker run -d -P training/webapp python app.py # -p 制定端口
1> 映射所有IP
eg: docker run -d -p 5000:5000 --name web training/webapp python app.py
2> 映射到指定地址和端口
eg: docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
3> 映射到指定地址的任意端口
eg: docker run -d -p 127.0.01::5000 training/webapp python app.py
4> 查看映射端口配置
eg: docker port

docker的介绍以及常用命令的更多相关文章

  1. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  2. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  3. webpack 介绍 & 安装 & 常用命令

    webpack 介绍 & 安装 & 常用命令 webpack系列目录 webpack 系列 一:模块系统的演进 webpack 系列 二:webpack 介绍&安装 webpa ...

  4. docker 简单介绍及基础命令运用

    一.什么是docker? Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. 简单的来讲Docker实际上就是一个大型容器.容器是完全使用沙箱机制,相互之间不 ...

  5. windows下docker的安装及常用命令学习

    docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...

  6. docker入门资料及常用命令

      Docker17中文开发手册 :https://www.php.cn/manual/view/36147.html   Linux部署Docker及常用命令: https://www.cnblog ...

  7. Docker——基本使用及常用命令

    Docker 是一个开源的应用容器引擎,而一个容器其实是一个虚拟化的独立的环境,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. ...

  8. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  9. vim编辑器介绍及其常用命令

    vim简单的介绍 Vim 编辑器是一个模式编辑器 . 这意味着在不同状态下编辑器有不同的行为模式 . 两个基本的模式是 Normal 模式和 Insert 模式 ,还有可视模式. 在 Normal 模 ...

随机推荐

  1. 解决opencv3运行opencv2代码时报错的修改备忘录

    虽然opencv3是基于opencv2进行开发的(一部分opencv2代码在opencv3中还能正常运行),但opencv3自身也做了部分修改,而目前网上很多教程还是基于opencv2的函数API来编 ...

  2. Axure知识点

    1 一个事件包含N个用例:一个用例包含N个动作.

  3. Spring IOC容器启动流程源码解析(一)——容器概念详解及源码初探

    目录 1. 前言 1.1 IOC容器到底是什么 1.2 BeanFactory和ApplicationContext的联系以及区别 1.3 解读IOC容器启动流程的意义 1.4 如何有效的阅读源码 2 ...

  4. Android Activity简介和自定义视图

    ------siwuxie95 Activity简单来说就是一个界面(如桌面也是一个Activity),不同按键对Activity的影响不同(如返回键和Home键) 布局在layout下的activi ...

  5. 把二叉搜索树转化成更大的树 · Convert BST to Greater Tree

    [抄题]: 给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点). Given a binary search Tree ...

  6. centos7 ntp服务器配置

    一.ntp服务是什么 1. 定义 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议. 2. 发展 首次记载在Internet Enginee ...

  7. JAVA定时关机小程序

    大一刚学java时候做的小程序.由于当时迅雷还没有下载完成关机,晚上要下很多学习资料.只有自己算时间然后通过shutdown命令设置时间关机. 当时通过shutwodn命令,想到能否通过java做一个 ...

  8. ST-LINK驱动的安装

    1.下载ST-LINK驱动ST-LINK_USB_V2_1_Driver 双击dpinst_amd64.exe来安装. 成功会显示: 2.进入MDK5里面去配置ST-LINK 通过魔术棒选项: a.D ...

  9. markdown你的生活 | markdown编辑器简介

    前言 你是否有这样的困扰?希望找一个笔记本记录东西,window自带的notepad(记事本)?,轻量但是功能太有限.word文档?功能虽多,但是很沉重,我们需要花很多时间去想如何排版会更记录会清晰, ...

  10. Linux 基础教程 45-read命令

    基本用法     read命令主要用于从标准输入读取内容或从文件中读取内容,并把信息保存到变量中.其常用用法如下所示: read [选项] [文件] 选项 解释 -a array 将内容读取到数值中, ...