docker基本信息查询
# 查看docker版本
$docker version
# 显示docker系统的信息
$docker info
镜像管理
查找image
从 Docker Hub 中搜索符合条件的镜像。
docker search [options ] term
docker search -s django
--automated 只列出 automated build
类型的镜像;
--no-trunc 可显示完整的镜像描述;
-s 列出收藏数不小于的镜像。
上传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- > 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
从归档文件(支持远程文件)创建一个镜像, 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= 列出最近创建的个容器;
-q 仅列出容器ID;
-s 显示容器大小。
删除容器
docker rm [options ] <container> [container...]
docker rm nginx- nginx- db- db-
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 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。
停止、启动、杀死一个容器
启动一个新的容器
注意:此命令比较常用
Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
-a=map[]: 附加标准输入、输出或者错误输出
-c=: 共享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 login
[email protected]:~# docker login
Username: username
Password: ****
Email: [email protected].com
Login Succeeded
按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。
docker logout
运行后从指定服务器登出,默认为官方服务器。