你得折腾起来啊!
常用命令
# 显示docker的版本信息
docker version
# 显示docker的系统信息,包括镜像和容器的数量
docker info
# 万能命令
docker 命令 --help
镜像命令
docker images 查看所有本地的主机上的镜像
1.解释
RESPOSITORY | 镜像的仓库源 |
TAG | 镜像的标签 |
IMAGE ID | 镜像的id |
CREATED | 创建时间 |
SIZE | 大小 |
2.可选项
-a, --all # 列出所有镜像
docker images -a
-q, --quiet # 只显示镜像的id
docker images -q
docker images -aq #列出所有镜像的id
docker search 搜索镜像
ps: 建议去docker hub 搜索,可以显示详细信息及示例
1.可选项
-f, --filter # 按条件过滤结果
docker search nginx --filter=TARTS=3000
docker pull 镜像名[:tag] # 下载镜像
不写tag 默认拉去latest版本
docker pull nginx:1.0
docker rmi 删除镜像
docker rmi -f 镜像id #删除指定容器
docker rmi -f 镜像id 镜像id 镜像id ... # 删除多个容器
docker rmi -f $(docker iamges -aq) # 删除全部的容器
docker build 创建镜像
用于使用 Dockerfile 创建镜像
--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 :尝试去更新镜像的新版本;
--quiet, -q :安静模式,成功后只输出镜像 ID;
--rm :设置镜像成功后删除中间容器;
--shm-size :设置/dev/shm的大小,默认值是64M;
--ulimit:Ulimit配置。
--squash :将 Dockerfile 中所有的操作压缩为一层。
--tag, -t# 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
--network #默认 default。在构建期间设置RUN指令的网络模式
docker tag : 标记本地镜像,将其归入某一仓库。
docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
# eg: 将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。
docker tag ubuntu:15.10 runoob/ubuntu:v3
镜像仓库
docker login -u登陆的用户名 -p :登陆的密码 # 登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout 登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库
docker history 查看指定镜像的创建历史
-H # 以可读的格式打印镜像大小和日期,默认为true;
--no-trunc # 显示完整的提交记录;
-q :# 提交记录ID。
容器命令
docker pull 下载一个镜像
docker pull name[:tag]
新建容器并启动
docker run [可选参数] image
# 参数说明
--name="name" # 容器名字 nginx1 nginx2 用来区分容器
-d # 后台方式运行
-it # 使用交互方式运行,进入容器查看内容
--restart=always # 表示容器自启,一直运行
--volume , -v # 绑定一个卷 避免修改文件后重新启动容器
-p # 指定容器的端口 -p 8080:8080
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-P 随机指定端口
-h "mars" # 指定容器的hostname;
-e username="ritchie" # 设置环境变量;
# 启动并进入容器
docker run -it nginx /bin/bash
# 退出容器
exit # 直接退出,容器停止并推出
CTRL + P + Q # 容器不停止退出
docker ps # 列出所有运行中的容器
# 参数
# 出当前正在运行的容器
-a # 列出当前正在运行的容器 + 带出运行过的容器
-n=? #显示最精创建的容器
-q # 只出当前正在运行的容器
docker rm #删除容器
docker rm 容器id # 删除指定的容器(不能删除正在运行的容器,如果要删除 加 -f)
docker rm -f $(docker ps -aq) # 删除所有容器
docker ps -a -a|xargs docker rm # 删除所有容器
启动和停止容器的操作
docker start 容器id # 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前的容器
docker pause 容器id # 暂停容器中所有的进程。
docker pause 容器id # 暂停容器中所有的进程。
docker unpause 容器id # 恢复容器中所有的进程。
常用的其他命令
1.后台启动
# 命令 docker run -d 镜像名
docker run -d nginx
# 问题docker ps, 发现 容器停止了
# 常见坑:docker 容器使用后台运行,就必须要有哦一个前台进程,docker发现没有应用,就会自动停止
2.查看日志
docker logs 容器id
# 参数
-f # 持续打印
-t, #
--tail number #要显示的条数
3.查看容器中近程信息
docker top 容器id # 查看容器中运行的进程信息,支持 ps 命令参数。
容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。
4.查看镜像的元数据
docker inspect name|id
-f :指定返回值的模板文件。
-s :显示总的文件大小。
--type :为指定类型返回JSON。
5.进入当前正在运行的容器
通常容器都是使用后台的方式运行的,需要进入容器,修改一些配置
# 进入容器后开启一个新的终端,可以在里面操作
docker exec -it 容器id /bin/bash
# 进入正在执行的终端,不会启动新的进程
docker attach 容器id
6.从容器内拷贝文件到主机上
1.进入容器
docker attach 容器id
2.拷贝
docker cp 容器id:容器内路径 目的地路径
总结
// 查看正在运行的容器
docker ps
// 查看所有的容器,包括停止运行的容器
docker ps -a
// 下载一个镜像
docker pull name[:tag]
//
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。