拾遗: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 基本应用的更多相关文章
- 拾遗:使用 systemd-journald 管理 Docker 容器日志
在 docker.service 文件中的 ExecStart 字段中,添加(或:docker run --log-driver=journald): --log-driver=journald \ ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在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 ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
随机推荐
- 8、数值分析与matlab
1.今天要拷matlab代码了,而且是很恶心的算法,估计也没几个人能看得懂,就连我自己都看不懂. 我也不知道这样做的意义何在,可能只是证明我在这世上曾经学过那么那么难的东西吧 首先是一个matlab版 ...
- Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解
文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...
- 推荐两款远程管理Linux工具(基于Windows系统)
推荐两款远程管理Linux工具(基于Windows系统) 1.Xshell 百度百科:Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows ...
- 遵循PEP8风格指南
整理来自 effective python 一 空白 1 使用space来标识缩进,而不是tab 2 和语法相关的每层缩进都使用4个空格 3 每行的字符数不应该超过79 4 对于多行的表达式,除了首行 ...
- docker stack利用secrets启动wordpress
docker-compose文件 version: '3.1' services: web: image: wordpress ports: - : secrets: - my-pw environm ...
- Android开发之程序猿必需要懂得Android的重要设计理念
前几天去參加了带着自己的作品去參加服务外包大赛,由于签位抽到的比較靠后就等待了蛮久,就跟坐在前面的一起參赛的选手開始讨论Android的开发经验.各自给对方展示了自己的作品,小伙伴就建议我看 ...
- Neo4j-Cypher查询语言-函数
断言函数(Predicate functions) 函数名称 函数说明 ALL(identifier in collection WHERE predicate) 判断一个断言(predicate) ...
- vue组件库的基本开发步骤(源代码)
上次发布的随笔忘记提供源代码了,今天特地来补充,如果有什么问题,欢迎大家为我修改指正. vue.config.js文件: const path = require('path') function r ...
- 为什么要用webpack!
为什么要用webpack? 现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包. 模块化,让我们可以把复杂的程序细化为小的文件; 类似于Type ...
- window 下搭建流媒体服务器ffmpeg nginx-rmtp-module
媒体介绍和需要下载需要软件 1.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp 2.ng ...