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. Java学习之接口

    接口作用:为类提供额外功能(方法) 一.接口定义 interface IDemo { ;//可以简写:int NUM=4; public abstract void show();//可以简写:voi ...

  2. Mysql 生成随机数字

    其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 round() 函数. 具体为:select round(rand()*10 ...

  3. SQL中to_char方法的应用

    1.取得当前日期是本月的第几周 SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual; ----------------- ...

  4. expect的模式

    expect的模式其实就是对话模式: expect    # 期望什么 send      # 我给你什么 比如: expect "password: "    # 碰到什么了 s ...

  5. JS提示信息来检测相应id的标签

    2015-07~2015-08 (其中$为document.getElementById()) 使用span提示信息来检测相应id的标签,没有返回值 infoTips("LRYH" ...

  6. 2019-8-28-WPF-开发

    title author date CreateTime categories WPF 开发 lindexi 2019-8-28 11:3:39 +0800 2018-2-13 17:23:3 +08 ...

  7. swapon, swapoff - 使用/关闭用于分页和交换的文件和设备

    总览 (SYNOPSIS) /sbin/swapon [-h -V] /sbin/swapon -a [-v] /sbin/swapon [-v] [-p priority] specialfile ...

  8. MySQL--分组数据

    1.数据分组 #连接数据库 use newschema; #查看表中数据 select *from products: #返回供应商1003提供的产品数目 ; 2.创建分组 select vend_i ...

  9. C#排序 转

    本文链接:https://blog.csdn.net/fysuccess/article/details/36416255 C#中List<T>排序的两种方法 List<Studen ...

  10. java反射的使用场合和作用、及其优缺点

    1)使用场合 在编译时根本无法知道该对象或类可能属于哪些类,程序只依靠运行时信息来发现该对象和类的真实信息. 2)主要作用 通过反射可以使程序代码访问装载到JVM 中的类的内部信息,获取已装载类的属性 ...