镜像相关命令
获取镜像
仓库地址默认是docker hub(docker的官方仓库地址)
用户地址默认是官方仓库library
版本号默认是latest
docker pull 仓库地址/用户名/仓库名:版本
举例:
docker pull ubuntu
docker pull registry.hub.docker.com/library/ubuntu:latest
检索镜像
docker search 镜像名(模糊搜索)
查看本地镜像
docker image ls
# or
docker images
举例:
# 列出所有镜像
docker images
# 列出所有ubuntu镜像
docker images ubuntu
通过dockerfile构建镜像
docker build [options]
- options:
-t:通常是 镜像名:标签 的形式 ,或只设定镜像名
-f :指定要使用的Dockerfile路径,默认当前目录
-m:设置内存最大值
–cpu-shares:设置CPU使用权重
删除镜像
根据容器id或容器名删除镜像,加上-f参数后会强制删除镜像
docker rmi 容器名|容器ID
docker rmi -f 容器名|容器ID
删除未被标记和容器使用的镜像:
docker image prune
删除未被容器使用的镜像:
docker image prune -a
给镜像打标签
可以通过指定仓库名/用户名/镜像名:标签的形式将镜像打上标签,将其归入某一仓库。
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
举例:
docker tag ubuntu:15.10 runoob/ubuntu:v3
将镜像归档成文件
-o 表示指定导出的文件名
docker save runoob/ubuntu:v3 -o my_ubuntu_v3.tar
从归档的镜像文件载入到本地镜像库
-i 表示指定导入的文件名
docker load -i my_ubuntu_v3.tar
查看镜像的元数据
docker inspect 镜像ID|镜像名
容器相关命令
启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-d: 后台运行容器,并返回容器ID;
-i:打开STDIN,以交互模式运行容器,通常与 -t 同时使用;
-w:指定容器工作目录
-v:挂载存储卷到容器某目录
–restart=“no” :(no退出不重启、on-failure出错失败重启、always停止就重启)
-P: 随机端口映射,容器内部端口随机映射到主机的高端口
-p 80:80 :宿主机端口:容器暴露的端口 (端口映射)
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–name=“VideoInfoCompletion”: 为容器指定一个名称;
-c:设置CPU权重
-m :设置内存上限
-h :指定容器主机名(hostname)
-u:指定容器的用户
–dns 8.8.8.8:指定容器使用的DNS服务器,默认和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-e username=“ritchie”: 设置环境变量;
–env-file=[]: 从指定文件读入环境变量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
–net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
–link=[]: 添加链接到另一个容器;
–expose=[]: 开放一个端口或一组端口;
举例:
docker run -p 80:80 -v /data:/data -d nginx:latest
docker run -it nginx:latest /bin/bash
启动、停止、重启、暂停、恢复容器
可以操作一个或多个容器
docker start 容器ID|容器名
docker stop 容器ID|容器名
docker restart 容器ID|容器名
docker pause 容器ID|容器名
docker unpause 容器ID|容器名
创建一个容器,但不启动
语法和docker run 一样
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
在容器内执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
举例:
# 通过带参数-it并执行/bin/bash的方式进入容器
docker exec -it ubuntu /bin/bash
# 在后台执行命令
docker exec -d ubuntu python -u /usr/cmdline.py
删除容器
删除一个或多个容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
不带参数:只能删除未运行的容器
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-v :删除与容器关联的卷。
删除所有已停止的容器
docker rm $(docker ps -a -q)
# or
docker container prune
查看本地容器
docker ps [options]
不带参数:显示正在运行的容器
-a:显示所有容器
-q:只显示容器ID
-n num:显示最近创建的num个容器
-s:显示容器的大小
查看容器输出的日志
docker logs [OPTIONS] 容器名|容器ID
-f:持续输出
-t:显示时间戳
-tail n:列出最新n条日志
-since:列出从某时间开始的日志
主机与容器之间文件的互相拷贝
docker cp 主机目录 容器ID:容器目录
docker cp 容器ID:容器目录 主机目录
查看容器内文件目录结构的修改
docker diff 容器名|容器ID
查看容器的元数据
docker inspect 容器ID|容器名
查看容器运行的进程信息
docker top 容器名|容器ID
查看容器的端口映射
docker port 容器名|容器ID
Docker系统相关命令
查看Docker的磁盘占用
# 查看docker镜像、容器、本地数据卷的磁盘占用情况
docker system df
# 查看细节
docker system df -v
查看各个容器的实时占用系统资源情况
docker stats
查看Docker的事件
docker events [OPTIONS]
-f :根据条件过滤事件;
–since :从指定的时间后显示所有事件;
–until :显示到指定事件为止的所有事件;
举例:
docker events --since="1467302400"
docker events --since="2020-01-13"
# 显示镜像名是ubuntu的所有事件
docker events -f "image"="ubuntu"
Docker prune 进行清理
# 清理未被标记和使用的镜像
docker image prune
# 清理未被使用的镜像
docker image prune -a
# 清理未运行的容器
docker container prune
# 清理未被挂载的数据卷
docker volume prune
# 清理所有网络:
docker network prune
# 用于清理dangling镜像和所有关闭的容器,以及失效的数据卷和网络。
docker system prune
# 深度清理,保留真正正在使用的镜像、容器、数据卷以及网络(如果有备份会被删掉)
docker system prune -a
查看Docker版本信息
docker version
查看Docker在当前系统的信息
docker info
得到如下结果
Client:
Debug Mode: false
Server:
Containers: 9
Running: 1
Paused: 0
Stopped: 8
Images: 27
Server Version: 19.03.5
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: b34a5c8af56e510852c35414db4c1f4fa6123456
runc version: 3e425f80a8c931f88e6d94a8c831b9d5aa481234
init version: fec1234
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-72-generic
Operating System: Ubuntu 18.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 40
Total Memory: 125.8GiB
Name: dell
ID: YR2U:BWBW:N4WR:TSHY:BA3H:MN76:EUP7:USLH:7BQF:6AOR:2UR3:1234
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
http://f1361db2.m.daocloud.io/
Live Restore Enabled: false
WARNING: No swap limit support