您的位置:首页 > 运维架构 > Docker

Docker常用命令整理

2016-07-12 17:42 771 查看

docker基本信息查询

# 查看docker版本
$docker version

# 显示docker系统的信息
$docker info


镜像管理

查找image

从 Docker Hub 中搜索符合条件的镜像。

docker search [options ] term
docker search -s  django

--automated 只列出 automated build
类型的镜像;

--no-trunc 可显示完整的镜像描述;

-s 40 列出收藏数不小于40的镜像。


上传image

从 Docker Hub 中拉取或者更新指定镜像。

docker pull [-a ] [user/ ]name[:tag ]
docker pull laozhu/telescope:latest

-a 拉取所有 tagged 镜像 。


将镜像推送至远程仓库

docker push name[:tag ]
docker push laozhu/nginx:latest


将镜像推送至远程仓库,默认为 Docker Hub 。

列出本地所有镜像

docker images [options ] [name]

列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询。

-a 列出所有镜像(含过程镜像);

-f 过滤镜像,如: -f ['dangling=true'] 只列出满足
dangling=true 条件的镜像;

--no-trunc 可显示完整的镜像ID;

-q 仅列出镜像ID。

--tree 以树状结构列出镜像的所有提交历史。


删除image

docker rmi [options ] <image>  [image...]
docker rmi nginx:latest postgres:latest python:latest

从本地移除一个或多个指定的镜像。

-f 强行移除该镜像,即使其正被使用;

--no-prune 不移除该镜像的过程镜像,默认移除。


保存/加载镜像

docker save
docker save -i "debian.tar"
docker save > "debian.tar"
-o "debian.tar" 指定保存的镜像归档。


将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

docker load
docker load [options]
docker load < debian.tar
docker load -i "debian.tar"
-i "debian.tar" 指定载入的镜像归档。


从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

导出/导入镜像

docker export
docker export <container>
docker export nginx-01 > export.tar


将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

docker import
docker import url|-  [repository[:tag ]]
cat export.tar  "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar[/code] 
从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

查看指定镜像的创建历史

docker history  [options] <image>

--no-trunc 显示完整的提交记录;
-q 仅列出提交记录ID。


容器管理

查看容器

docker ps

-a 列出所有容器(含沉睡镜像);

--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;

--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;

-f [exited=<int>] 列出满足
exited=<int> 条件的容器;

-l 仅列出最新创建的一个容器;

--no-trunc 显示完整的容器ID;

-n=4 列出最近创建的4个容器;

-q 仅列出容器ID;

-s 显示容器大小。


删除容器

docker rm [options ] <container>  [container...]
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
#删除所有容器
docker rm $(docker ps -a -q)

-f 强行移除该容器,即使其正在运行;

-l 移除容器间的网络连接,而非容器本身;

-v 移除与容器关联的空间。


杀死容器

docker kill  [options ] <container>  [container...]

杀死一个或多个指定容器进程。

-s "KILL" 自定义发送至容器的信号。


启动、停止和重启一个或多个指定容器

docker stop <容器名orID>
docker start <容器名orID>
docker restart<容器名orID>

-a 待完成

-i 启动一个容器并进入交互模式;

-t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。
停止、启动、杀死一个容器


启动一个新的容器

注意:此命令比较常用

Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
-a=map[]: 附加标准输入、输出或者错误输出
-c=0: 共享CPU格式(相对重要)
-cidfile="": 将容器的ID标识写入文件
-d=false: 分离模式,在后台运行容器,并且打印出容器ID
-e=[]:设置环境变量
-h="": 容器的主机名称
-i=false: 保持输入流开放即使没有附加输入流
-privileged=false: 给容器扩展的权限
-m="": 内存限制 (格式:<number><optional unit>, unit单位 = b, k, m or g)
-n=true: 允许镜像使用网络
-p=[]: 匹配镜像内的网络端口号
-rm=false:当容器退出时自动删除容器 (不能跟 -d一起使用)
-t=false: 分配一个伪造的终端输入
-u="": 用户名或者ID
-dns=[]: 自定义容器的DNS服务器
-v=[]: 创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷
-volumes-from="": 挂载容器所有的卷
-entrypoint="": 覆盖镜像设置默认的入口点
-w="": 工作目录内的容器
-lxc-conf=[]: 添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-sig-proxy=true: 代理接收所有进程信号(even in non-tty mode)
-expose=[]: 让你主机没有开放的端口
-link="": 连接到另一个容器(name:alias)
--name="": 分配容器的名称,如果没有指定就会随机生成一个
-P=false: Publish all exposed ports to thehost interfaces 公布所有显示的端口主机接口


暂停容器/恢复容器

docker pause


暂停某一容器的所有进程。

docker unpause <container>


恢复某一容器的所有进程。

仓库管理

docker login
root@moon:~# docker login
Username: username
Password: ****
Email: user@domain.com
Login Succeeded


按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。

docker logout


运行后从指定服务器登出,默认为官方服务器。

提交容器镜像(带唯一编号进行提交)

docker commit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker