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. jQuery.Deferred exception: a.indexOf is not a function TypeError: a.indexOf is not a function

    jq版本问题 3.2换成1.9就可以了

  2. VEX IR语言语法

    /*---------------------------------------------------------------*//*--- High-level IR description - ...

  3. selenium 3 下载 + Java使用

    一.下载Selenium 3 的相关包和工具 Selenium 3 下载的官网地址为http://www.seleniumhq.org/download/.当然,需要翻墙才能登陆selenium的官网 ...

  4. Pyhon 格式化输出的几种方式

    废话不多说,直接上代码 第一种格式化的输出方式,拼接我就不上了,不建议使用,数据多的时候自己都蒙圈 # -*- coding:utf-8 -*- # Author:覃振鸿 #格式化输出 name=in ...

  5. netease-cloud-music : 依赖: libqt5x11extras5 (>= 5.1.0) 但是它将不会被安装

    修复一下依赖关系: sudo apt-get install -f #或者:sudo apt-get -f install 上面两条是修复依赖关系(depends)的命令,就是假如你的系统上有某个pa ...

  6. springMVC 框架的xml配置文件的说明

    springMVC框架xml文件配置的说明,直接上代码: 我们介绍四个xml文件配置以及xml内容的理解:application.xml.spring-mvc.xml.pom.xml 和 web.xm ...

  7. android 数据异步加载

    public class MainActivity extends Activity { ListView listView; File cache; //访问其他线程在当前线程中存放的数据 Hand ...

  8. 博客中引入了gitment评论系统

    官方github地址:https://github.com/imsun/gitment 官方中文说明地址:https://imsun.net/posts/gitment-introduction/ 官 ...

  9. git拉取远程所有分支

    第一步: git branch -r | grep -v '->' | while read remote; do git branch --track "${remote#origi ...

  10. svndumpfilter - 过滤一个 Subversion 仓库的转储文件 `dumpfile'。

    SYNOPSIS 总览 svndumpfilter command [options & args] OVERVIEW 概述 Subversion 是一个版本控制系统,允许保存旧版本的文件和目 ...