https://wiki.gentoo.org/wiki/Docker

检查内核内核选项

exec /usr/share/docker/contrib/check-config.sh

使用 btrfs 驱动

#创建 /etc/docker/daemon.json,并添加如下内容
{
"storage-driver": "btrfs"

安装

  最新版:curl -fsSL https://get.docker.com/ | sh

[gentoo]

  • # groupadd docker
  • # gpasswd -a ${UserName} docker
  • app-emulation/docker
    • USE:btrfs -aufs -devicemapper

下载镜像

  • docker search ImagesName
  • docker pull [Options] [Docker Registry Addr]/<Repositry>:<Tag>
    • Docker Registry地址:地址的格式一般是 <IP Addr>[:Port] ,默认地址是 Docker Hub;
    • 仓库名:两段式名称,既 <Docker Hub UserName>/<ImageName>,对于 Docker Hub,如果不给出用户名,则默认为 library,也就是官方镜像。
  • 示例:docker pull jxus37ad.mirror.aliyuncs.com/yeasy/hyperledger-fabric-peer:latest
  • 设置加速镜像:在 docker.service 中 ExecStart=... 项中追加 --registry-mirror=https://jxus37ad.mirror.aliyuncs.com

运行容器

  • docker run -i -t --rm --name=test -p 8080:80 yeasy/hyperledger-fabric-peer:latest bash

    • -i:交互式操作
    • -t:打开一个终端
    • --rm:退出后销毁该容器,此选项不能与 -d 同时使用
    • --name:指定容器名称
    • -p:指定主机与容器之间的端口影射,此处指将主机的 8080 端口影射到容器的 80 端口
    • bash:最后一部分指要执行的命令
    • -h HostName:配置容器主机名

    • --link=ContainerName:Alias:添加到另一个容器的连接,在当前启动的容器内部使用 env 或查看 /etc/hosts 获取目标容器的网络信息

    • --dns=IP_ADDRESS 使用指定的DNS服务器

数据卷[用于永久保存数据]

  • -v 创建数据卷及权限(也可以指定数据卷主机目录位置、容器挂载位置及权限)

    • 示例:docker run -d -P --name web -v [/tmp/webapp:]/opt/webapp[:rw] training/webapp python app.py,指将主机的 /tmp/webapp 目录挂载到 Container 中的 /opt/webapp 目录,充当数据卷,可指定权限(默认 rw)

  • docker rm -v ContainerName:删除容器时同时删除对应的数据卷,默认不删除
  • 挂载其它容器的数据卷,该容器的属主容器无需处于运行状态
    • docker run -d -v /dbdata --name test1 training/test,创建数据卷
    • docker run -d --volumes-from test1 --name test2 training/test,挂载 test1 容器的数据卷到 test2 容器

执行操作

  • docker exec -it [ContainerName] [CMD]

    • 在已启动的容器中执行操作
  • docker diff ContainerName
    • 查看容器中有变动的文件列表
  • docker history ImageName
    • 查看对指定镜像的操作历史
  • docker rm [-f] ContainerName
    • 删除容器,-f 指强制删除运行中的容器
  • docker rmi ImageName
    • 删除镜像
  • docker start/stop/restart
  • docker ps [-a]
    • -a 同时查看处于 stop 状态的 Container
  • docker attach ContainName
    • 进入后台容器执行操作
  • docker logs ContainerName
    • 获取后台运行的容器的输出内容
  • docker export ContainerID [-o/--output FileName]
    • 导出快照,-o 输出到指定文件,如:docker export ContainerID -o xxx.tar.gz
  • docker import /PATH/TO/SnapName ImageName:tag 
    • 导入快照,PATH 可以为 http://.../xxx.tgz 等格式
  • docker load -i ImageFileName
    • 将本地镜像文件导入 docker 镜像库:将镜像解压之后再导入

查询信息

  • docker images [IMAGENAME:TAG]

    • -f dangling=true:显示垃圾镜像
    • docker rmi $(docker images -q -f dangling=true):批量清除垃圾镜像
    • -a:同时显示中间层镜像,中间层镜像随其上层镜像同步消亡,无需手工操作
    • -q:输出精简信息,仅显示 IMAGE ID 字段
    • 示例:docker imagers -a -q debian
  • docker inspect ContainerName
    • 查询容器详细信息,输出格式为 JSON,数据卷在 “Mounts” 键对应的值中存储
  • docker port ContainerName Port
    • 查询容器端口上绑定的主机端口
  • docker stats [ContainerName]:类似于 top,动态监控主机容器运行时信息

网络

  • docker -P:主机与容器之间随机影射,通过 docker ps [-l] 查看
  • docker -p IP:HostPort:ContainerPort|IP::ContainerPort|HostPort:ContainerPort
    • 可以同时指定容器可以使用的主机 IP 及主机端口,不指定 IP 指主机所有 IPaddr 均对容器开放
    • 可以使用多个 -p 同时操作多组 Ports 绑定
  • docker 默认的虚拟网桥 docker0 并没有加入主机的网卡,且容器的网关设置为 docker0 的 IP,因此是一个 NAT 网络,外部无法直接访问
    • (1)、将主机网卡绑定至 docker0
    • (2)、自建网桥,并在 docker.service 中添加 -b BRIDGE 或 --bridge=BRIDGE,使用自建的 bridge

...

拾遗:Docker 基本应用的更多相关文章

  1. 拾遗:使用 systemd-journald 管理 Docker 容器日志

    在 docker.service 文件中的 ExecStart 字段中,添加(或:docker run --log-driver=journald): --log-driver=journald \ ...

  2. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  3. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境

    首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...

  4. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  5. 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)

    环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...

  6. docker for mac 学习记录

    docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...

  7. scrapy爬虫docker部署

    spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...

  8. [原][Docker]特性与原理解析

    Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...

  9. 开发者的利器:Docker 理解与使用

    困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...

随机推荐

  1. Mac Office2016 安装及破解

    一.安装包下载地址 http://officecdn.microsoft.com/sg/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/Microsoft ...

  2. webstorm 分屏

  3. css篇-简化版

    [CSS篇]简化版 (1)     CSS盒模型 CSS盒模型 题目:谈谈你对CSS盒模型的认识 1)       基本概念:标准模型+IE模型 2)       标准模型和IE模型的区别 计算宽度和 ...

  4. tushare积分怎么获得 tushare pro 积分充值 积分转让

    本人是做量化投资的,团队转型,换了交易策略,手头有多个离职同事的闲置转让.600分:原价50元,仅需39元1500分:原价150元,仅需109元(售罄)2000分:原价200元,仅需149元5000分 ...

  5. python+tushare获取上市公司财务报表:资产负债表

    接口:balancesheet 描述:获取上市公司资产负债表 积分:用户需要至少500积分才可以调取,具体请参阅本文最下方积分获取办法 注:tushare包下载和初始化教程,请查阅我之前的文章 提示: ...

  6. 免费开源的获取代理ip项目

    地址:https://github.com/awolfly9/IPProxyTool 根据教程获取ip,项目使用Python语言写的,正好可以让前些日子学了点Python皮毛的我长长见识: ip都是会 ...

  7. LeetCode Array Medium 11. Container With Most Water

    Description Given n non-negative integers a1, a2, ..., an , where each represents a point at coordin ...

  8. Stm32 控制1.44寸液晶显示图片 基于stm32f051k8u6

    在线图片转BMP格式:https://app.xunjiepdf.com/img2bmp 一.使用工具对图片生成字符数组 1. 使用1.44寸的液晶其像素是128*128的16位真彩,则需要把图片调整 ...

  9. Codeforces 348C Subset Sums 分块思想

    题意思路:https://www.cnblogs.com/jianrenfang/p/6502858.html 第一次见这种思路,对于集合大小分为两种类型,一种是重集合,一种是轻集合,对于重集合,我们 ...

  10. python_django_分页

    分页:把从数据库中的数据分为多页在客户端显示. 在django中,可通过这两个对象来实现: Paginator对象 Page对象 Paginator对象与Page对象的关系: paginator对象调 ...