Docker命令解读-二

本文是Docker命令解读系列的第二篇,深入解析Docker守护进程的Socket选项、执行驱动器选项、DNS配置、不安全Registry及遗留Registry的使用,帮助读者更好地理解和操作Docker。
摘要由CSDN通过智能技术生成

title: Docker命令解读(二)
date: 2015-11-21 19:30:44
tags: docker

categories: Docker Commands

Docker命令解读系列文章将系统讲解Docker使用的命令,方便大家学习Docker的基本操作。在写这个系列文章的时候,主要参考了Docker官方的文档,有些内容是直接的翻译。原文档地址 Docker Docs
转载请注明出处

Docker可以以两种模式启动,一种是client,一种是daemon,两者共用一个二进制文件。启动daemon就要使用docker daemon命令,使用docker daemon --help命令可以查看它的可选参数。

Usage: docker daemon [OPTIONS]

A self-sufficient runtime for linux containers.

Options:
  --api-cors-header=""                   Set CORS headers in the remote API
  -b, --bridge=""                        Attach containers to a network bridge
  --bip=""                               Specify network bridge IP
  -D, --debug=false                      Enable debug mode
  --default-gateway=""                   Container default gateway IPv4 address
  --default-gateway-v6=""                Container default gateway IPv6 address
  --cluster-store=""                     URL of the distributed storage backend
  --cluster-advertise=""                 Address of the daemon instance on the cluster
  --cluster-store-opt=map[]              Set cluster options
  --dns=[]                               DNS server to use
  --dns-opt=[]                           DNS options to use
  --dns-search=[]                        DNS search domains to use
  --default-ulimit=[]                    Set default ulimit settings for containers
  --exec-opt=[]                          Set exec driver options
  --exec-root="/var/run/docker"          Root of the Docker execdriver
  --fixed-cidr=""                        IPv4 subnet for fixed IPs
  --fixed-cidr-v6=""                     IPv6 subnet for fixed IPs
  -G, --group="docker"                   Group for the unix socket
  -g, --graph="/var/lib/docker"          Root of the Docker runtime
  -H, --host=[]                          Daemon socket(s) to connect to
  --help=false                           Print usage
  --icc=true                             Enable inter-container communication
  --insecure-registry=[]                 Enable insecure registry communication
  --ip=0.0.0.0                           Default IP when binding container ports
  --ip-forward=true                      Enable net.ipv4.ip_forward
  --ip-masq=true                         Enable IP masquerading
  --iptables=true                        Enable addition of iptables rules
  --ipv6=false                           Enable IPv6 networking
  -l, --log-level="info"                 Set the logging level
  --label=[]                             Set key=value labels to the daemon
  --log-driver="json-file"               Default driver for container logs
  --log-opt=[]                           Log driver specific options
  --mtu=0                                Set the containers network MTU
  --disable-legacy-registry=false        Do not contact legacy registries
  -p, --pidfile="/var/run/docker.pid"    Path to use for daemon PID file
  --registry-mirror=[]                   Preferred Docker registry mirror
  -s, --storage-driver=""                Storage driver to use
  --selinux-enabled=false                Enable selinux support
  --storage-opt=[]                       Set storage driver options
  --tls=false                            Use TLS; implied by --tlsverify
  --tlscacert="~/.docker/ca.pem"         Trust certs signed only by this CA
  --tlscert="~/.docker/cert.pem"         Path to TLS certificate file
  --tlskey="~/.docker/key.pem"           Path to TLS key file
  --tlsverify=false                      Use TLS and verify the remote
  --userland-proxy=true                  Use userland proxy for loopback traffic

docker daemon用来管理所有的容器,是Docker最核心的部件之一。可以使用docker daemon -D启动DEBUG模式

本章内容为:
* Daemon socket Options
* Daemon execdriver Options
* Daemon DNS Options
* Insecure Registries
* Legacy Registries

Daemon socket Options

Docker daemon可以通过三种类型的socket监听Docker Remote API请求,分别是unixtcpfd
默认情况下,Docker会在/var/run/docker.sock下创建一个unix套接字,这需要root权限或者将当前用户加入了group docker
如果需要远程的访问Docker daemon,就需要使用TCP套接字,但需要注意的是,默认情况下,对Docker daemon的访问是非加密的和没有认证的。为了保证安全,需要需要使用经过加密的HTTPS套接字或者使用加密的安全web代理(secure web proxy)。
你可以使用-H tcp://0.0.0.0:2375以在所有的网络端口上监听2375接口,或者使用类似-H tcp://192.168.59.63:2375在一个特定的网络接口上监听2375端口。2375接口使用非加密的连接,2376使用加密的连接。
Note:如果你要使用加密的HTTPS连接,记住只支持TLS1.0和更高的版本,不支持SSLv3和以下的版本。
可以使用多个-H标签来是Docker daemon监听多个套接字,下面的例子监听一个unix socket和两个tcp socket

docker daemon -H unix:///var/run/docker.sock -H tcp://192.168.59.106 -H tcp://10.10.10.2

docker client会通过DOCKET_HOST环境变量来设置自己的-H标签值。

daemon存储驱动器选项
Docker daemon支持多种分层的存储驱动器,包括aufsdevicemapperbtrfszfsoverlay
aufs是最先被支持的一个,但是它几乎不可能被加入Linux内核。aufs是唯一一个支持容器间共享可执行二进制文件的存储驱动器。

Docker ecexdriver options

Docker执行驱动器选项。目前Docker默认的执行驱动器实现是libcontainerDocker通过它与Linux内核的namespacecgroupsSELinux打交道。
你可以通过--exec-opt标识来配置libcontainer(native execdriver),这些选项都以native作为前缀。

Daemon DNS Options

顾名思义,这个标识用来给所有的容器配置DNS服务器,命令格式为:

docker daemon --dns 8.8.8.8

也可以通过docker daemon --dns-search example.com为容器设置DNS search domain

Insecure Registries

不安全的镜像服务。
Note:关于Docker镜像服务,有几个概念:
首先是Registry,它指一个提供Docker镜像服务的站点,我们翻译为服务
Repository:它指一个提供某种镜像的仓库,如“chy/ubuntu”,它下面包括了各个版本的ubuntu镜像,如ubuntu12.04 ubuntu14.04等。
它们之间的关系为:一个Registry包括多个Repository,一个Repository又包括多个镜像。

Docker可以使用安全的或不安全的私有镜像Registry,所谓安全指镜像Registry使用了TLS和CA证书。不安全的镜像Registry指或者没有使用TLS或者其证书Docker daemon无法识别。
默认情况下,Docker要求除本地镜像Registry以外的所有镜像服务都要是安全的,否则无法进行通信。要与不安全的镜像Registry进行通信,需要在启动Docker daemon时使用--insecure-registry标识。有如下两种方式:
--insecure-registry myregistry:5000告诉Docker daemonmyregistry:5000是不安全的;--insecure-registry 10.1.0.0/16告诉Docker daemon子网中的所有镜像Registry都是不安全的。
如果一个不安全的镜像Registry没有被标记为不安全,那么docker pulldocker pushdocker search命令会返回一个错误告诉用户或者使用安全的镜像Registry或者将其标记为不安全。
本地的镜像Registry默认被标记为不安全的,但这可能在未来的版本中改变。
使用了--insecure-registry标识,意味着与其通信是不加密的,这在运行一个本地的镜像Registry时很有用(省去一些额外开销)。但最好只用来进行测试,因为可能会产生安全问题。

Legacy Registry

旧版本的Registry,也就是使用V1协议的Registry,目前比较新的协议是V2。--disable-legacy-registry标识指定Docker daemon只能和使用了V2协议的Registry进行通信。这样,当执行pullpushlogin命令的时候将不会尝试和V1 Registry通信,但search命令依然可以在V1 Registry上使用。

Docker 是一个开源的容器化平台,可以帮助开发者通过容器技术实现应用程序的快速部署、可移植性和可扩展性。以下是一些常用的 Docker 命令及其解读: 1. docker run:运行一个容器。使用该命令可以基于指定的镜像创建并启动一个容器实例。 2. docker pull:从 Docker 镜像仓库中拉取一个镜像。镜像是一个预先配置好的文件系统,可以用来创建容器。 3. docker build:根据 Dockerfile 构建一个镜像。Dockerfile 是一个包含构建指令的文本文件,用于定义镜像的构建过程。 4. docker images:列出本地已经下载的镜像列表。 5. docker ps:列出正在运行的容器列表。加上 -a 参数可以显示所有容器,包括已经停止运行的。 6. docker exec:在正在运行的容器中执行命令。可以通过该命令进入容器内部并执行指定的命令。 7. docker stop:停止一个正在运行的容器。 8. docker rm:删除一个已经停止运行的容器。 9. docker rmi:删除一个本地已经下载的镜像。 10. docker-compose up:通过 Docker Compose 启动多个容器。Docker Compose 是用于定义和管理多个 Docker 容器的工具。 这些是一些常用的 Docker 命令,可以帮助你进行容器的创建、管理和操作。请注意,还有更多的命令和参数可以用于更精确地控制 Docker 容器和镜像的行为。你可以通过运行 `docker --help` 命令查看更多详细的命令说明和使用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值