docker
参数详解
-D 默认false 允许调试模式(debugmode)
-H 默认是unix:///var/run/docker.sock tcp://[host[:port]]来绑定 或者unix://[/path/to/socket]来使用(二进制文件的时候),当主机ip host=[0.0.0.0],(端口)port=[4243] 或者 path=[/var/run/docker.sock]是缺省值,做为默认值来使用
-api-enable-cors 默认flase 允许CORS header远程api
-b 默认是空,附加在已存在的网桥上,如果是用'none'参数,就禁用了容器的网络
-bip 默认是空,使用提供的CIDR(ClasslessInter-Domain Routing-无类型域间选路)标记地址动态创建网桥(dcoker0),和-b参数冲突
-d 默认false 允许进程模式(daemonmode)
-dns 默认是空,使docker使用指定的DNS服务器
-g 默认是"/var/lib/docker":作为docker使用的根路径
-icc 默认true,允许inter-container来通信
-ip 默认"0.0.0.0":绑定容器端口的默认Ip地址
-iptables 默认true 禁用docker添加iptables规则
-mtu 默认1500 : 设置容器网络传输的最大单元(mtu)
-p 默认是/var/run/docker.pid进程pid使用的文件路径
-r 默认是true 重启之前运行的容器
-s 默认是空 ,这个是docker运行是使用一个指定的存储驱动器
-v 默认false 打印版本信息和退出
docker build [OPTIONS] PATH | URL | -
参数说明:
–build-arg=[] :设置镜像创建时的变量;
–cpu-shares :设置 cpu 使用权重;
–cpu-period :限制 CPU CFS周期;
–cpu-quota :限制 CPU CFS配额;
–cpuset-cpus :指定使用的CPU id;
–cpuset-mems :指定使用的内存 id;
–disable-content-trust :忽略校验,默认开启;
-f :指定要使用的Dockerfile路径;
–force-rm :设置镜像过程中删除中间容器;
–isolation :使用容器隔离技术;
–label=[] :设置镜像使用的元数据;
-m :设置内存最大值;
–memory-swap :设置Swap的最大值为内存+swap,”-1″表示不限swap;
–no-cache :创建镜像的过程不使用缓存;
–pull :尝试去更新镜像的新版本;
-q :安静模式,成功后只输出镜像ID;
–rm :设置镜像成功后删除中间容器;
–shm-size :设置/dev/shm的大小,默认值是64M;–ulimit :Ulimit配置。
docker commit :从容器创建一个新的镜像。
参数说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
docker events : 从服务器获取实时事件
参数说明:
-f :根据条件过滤事件;
--since :从指定的时间戳后显示所有事件;
--until :流水时间显示到指定的时间为止;
docker exec :在运行的容器中执行命令
参数说明:
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
docker export :将文件系统作为一个tar归档文件导出到STDOUT。
参数说明:-o :将输入内容写到文件。
docker history : 查看指定镜像的创建历史。参数说明:
-H :以可读的格式打印镜像大小和日期,默认为true;
--no-trunc :显示完整的提交记录;
-q :仅列出提交记录ID。
docker images : 列出本地镜像。
参数说明:
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
--digests :显示镜像的摘要信息;
-f :显示满足条件的镜像;
--format :指定返回值的模板文件;
--no-trunc :显示完整的镜像信息;
-q :只显示镜像ID。
docker import : 从归档文件中创建镜像。
参数说明:
-c :应用docker 指令创建镜像;
-m :提交时的说明文字;
docker inspect : 获取容器/镜像的元数据。
参数说明:
-f :指定返回值的模板文件。
-s :显示总的文件大小。
--type :为指定类型返回JSON。
docker kill :杀掉一个运行中的容器。
参数说明:
-s :向容器发送一个信号
docker login : 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
参数说明:
-u :登陆的用户名
-p :登陆的密码
docker logs : 获取容器的日志
参数说明:
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志
docker ps : 列出容器
参数说明:
-a :显示所有的容器,包括未运行的。
-f :根据条件过滤显示的内容。
--format :指定返回值的模板文件。
-l :显示最近创建的容器。
-n :列出最近创建的n个容器。
--no-trunc :不截断输出。
-q :静默模式,只显示容器编号。
-s :显示总的文件大小。
docker pull : 从镜像仓库中拉取或者更新指定镜像
参数说明:
-a :拉取所有 tagged 镜像
docker rm :删除一个或多少容器
参数说明:
-f :通过SIGKILL信号强制删除一个运行中的容器
-l :移除容器间的网络连接,而非容器本身
-v :-v 删除与容器关联的卷
docker rmi : 删除本地一个或多少镜像。
参数说明:
-f :强制删除;
--no-prune :不移除该镜像的过程镜像,默认移除;
docker run :创建一个新的容器并运行一个命令
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-a, --attach=[] 登录容器(以docker run -d启动的容器)
-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用
--cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities
--cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
--cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
-d, --detach=false 指定容器运行于前台还是后台
--device=[] 添加主机设备给容器,相当于设备直通
--dns=[] 指定容器的dns服务器
--dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
-e, --env=[] 指定环境变量,容器中可以使用该环境变量
--entrypoint="" 覆盖image的入口点
--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量
--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口
-h, --hostname="" 指定容器的主机名
-i, --interactive=false 打开STDIN,用于控制台交互
--link=[] 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用
-m, --memory="" 指定容器的内存上限
--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
--net="bridge" 容器网络设置,待详述
-P, --publish-all=false 指定容器暴露的端口,待详述
-p, --publish=[] 指定容器暴露的端口,待详述
--privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities
--restart="" 指定容器停止后的重启策略,待详述
--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
-t, --tty=false 分配tty设备,该可以支持终端登录
-u, --user="" 指定容器的用户
-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录
-w, --workdir="" 指定容器的工作目录
docker search : 从Docker Hub查找镜像
参数说明:
--automated :只列出 automated build类型的镜像;
--no-trunc :显示完整的镜像描述;-s :列出收藏数不小于指定值的镜像。
# 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。 # docker run --name mynginx -d nginx:latest # 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。 # docker run -P -d nginx:latest # 使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。 # docker run -p 80:80 -v /data:/data -d nginx:latest # 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。 # docker run -it nginx:latest /bin/bash # 连接到容器查看访问信息。 # docker attach mynginx #查看所有容器的状态 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a75f165ce6 centos "/bin/bash" 2 minutes ago Exited (0) 23 seconds ago cranky_mahavira 可见此时容器的状态是Exited,那么,如何再次运行这个容器呢?可以使用docker start命令 运行容器 # docker start cranky_mahavira #使用当前目录的Dockerfile创建镜像。 # docker build -t test/ubuntu:v1 # 生成新的镜像 # docker commit centos_v1 centos:v1 68ad49c999496cff25fdda58f0521530a143d3884e61bce7ada09bdc22337638 # 将新的镜像传到hub,其中v1是tag,可不写,默认是latest # docker push victor/centos:v1 # 容器mysql中/usr/local/bin/存在docker-entrypoint.sh文件,可如下方式copy到宿主机 # docker cp mysql:/usr/local/bin/docker-entrypoint.sh /root #修改完毕后,将该文件重新copy回容器 # docker cp /root/docker-entrypoint.sh mysql:/usr/local/bin/ # 使用docker镜像nginx:latest创建一个容器,并将容器命名为mynginx,同run # docker create --name mynginx nginx:latest # 查看容器内发生改变的文件,以我的mysql容器为例 # docker diff mysqldb C /root A /root/.bash_history A /test1.txt A /test.tar A /test.txt C /run C /run/mysqld A /run/mysqld/mysqld.pid A /run/mysqld/mysqld.sock 不难看出,C对应的均是目录,A对应的均是文件 # 实时输出Docker服务器端的事件,包括容器的创建,启动,关闭等 # docker events -f "image"="mysql:5.6" --since="1467302400" 2016-07-11T00:38:53.975174837+08:00 container start 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql) 2016-07-11T00:51:17.022572452+08:00 container kill 96f7f14e99ab9d2f60943a50be23035eda1623782cc5f930411bbea407a2bb10 (image=mysql:5.6, name=mymysql, signal=9) 。。。。。。。。。。。。。。。。 # docker exec -d cc touch 123 # 后台型任务 # 后台型任务 [root@localhost ~]# docker exec -i -t cc /bin/bash root@1e5bb46d801b:/# ls 123 bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # 将容器的文件系统打包成tar文件 # docker export -o mysqldb1.tar mysqldb # docker export mysqldb > mysqldb.tar #显示镜像制作的过程,相当于dockfile # docker history test/centos:lastest IMAGE CREATED CREATED BY SIZE COMMENT 4e3b13c8a266 3 months ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B3 months ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.863 kB 3 months ago /bin/sh -c set -xe && echo '#!/bin/sh' > /u 701 B 3 months ago /bin/sh -c #(nop) ADD file:43cb048516c6b80f22 136.3 MB # 查看本地镜像列表。 # docker images # 根据tar文件的内容新建一个镜像,与之前的export命令相对应 [root@localhost ~]# docker import mysqldb.tar mysql:v1 # 查看docker的系统信息 [root@localhost ~]# docker info Containers: 3 --当前有3个容器 Images: 298 Storage Driver: devicemapper 。。。。。。。。。。。。。。。。。 # 获取镜像mysql的信息。 # docker inspect mysql:5.6 [ { "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec", "RepoTags": [ "mysql:5.6" ], "RepoDigests": [], "Parent": "", "Comment": "", 。。。。。。。。。。。。。。。。。。。。。。。。 # 登录到自己的Docker Hub的账号 [root@localhost ~]# docker login Username: ivictor Password: Email: xxxx@foxmail.com WARNING: login credentials saved in /root/.docker/config.json Login Succeeded # 输出容器端口与宿主机端口的映射情况 # docker port blog 80/tcp -> 0.0.0.0:80 # 列出所有在运行的容器信息。 # docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp mytest 96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql # 列出最近创建的2个容器信息。 # docker ps -n 2 CONTAINER ID IMAGE COMMAND CREATED 09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ... b8573233d675 nginx:latest "/bin/bash" 2 days ago ... # 拉取nginx镜像 # docker pull nginx # 强制删除容器db01、db02 # docker rm -f db01、db02 # 移除容器nginx01对容器db01的连接,连接名db # docker rm -l db # 删除容器nginx01,并删除容器挂载的数据卷 # docker rm -v nginx01 # 强制删除本地镜像test/centos:v3。 # docker rmi -f test/centos:v3 # 将镜像打包,与上面的load命令相对应 # docker save -o nginx.tar nginx # docker search nginx #查找 # docker start nginx #启动 # docker restart nginx #重新启动 # docker stop nginx #停止 # docker stats nginx #状态 #镜像重命名 # docker tag centos test/centos:v3
评论(0)
暂无评论