docker01
1、Docker的基本组成
- 镜像(image):image文件可以看作是容器的模版。Docker会根据image文件生成容器。同一个image可以生成多个同时运行的容器实例。
- 容器(Container):是用镜像创建的运行实例。
- 它可以被启动、开始、停止、删除,每个容器都是相互隔离、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境
(包括 root 用户权限、进程空间、用户空间 和 网络空间等)和运行在其中的应用程序。【Linux 中的很多命令和 docker 命令相似】
- 仓库(Repository):集中存放
镜像
文件的场所。仓库和仓库注册服务器是有区别的。仓库注册器上往往存放着多个仓库,每个仓库又包含了多个镜像,每个镜像有不同的标签(tag)。仓库也分为公开仓库和私有仓库两种形式。
2、容器的操作
2.1 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS 说明
--name "新名称" 为容器指定一个新的名称;
-d 后台运行容器,并返回容器ID,也即启动守护式容器;
-i 以交互模式运行容器,通常与 -t 同时使用;
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-P 随机端口映射;
-p 指定端口映射,有以下四种形式:
ip:hostPort: containerPort
ip::containerPort
hostPort:containerPort
containerPort
2.2 列出所有在运行的容器
docker ps [OPTIONS]
OPTIONS 说明
-a 列出当前所有正在运行的容器 + 历史上运行过的
-l 显示最近创建的容器
-n 显示最近 n 个创建的容器: docker ps -n 3
-q 静默模式,只显示容器ID
--no-trunc 不截断输出
2.3 退出容器
- exit:容器停止退出
- ctrl + P + Q:容器不停止退出
2.4 启动容器
docker start [容器名/ID ]
2.5 停止容器
docker stop [容器名/ID]
2.6 强制停止容器
docker kill [容器名/ID]
2.7 删除已停止的容器
docker rm [容器ID]
一次性删除多个容器:
#类似于SQL语句中的嵌套查询
docker rm -f ${docker ps -a -q}
docker ps -a -q | xargs docker rm
2.8 查看容器日志
docker logs -f -t --tail [容器ID]
-t 是加入时间戳
-f 跟随最新的日志打印
--tail [数字] 显示最后多少条记录
2.9 查看容器内部细节
docker inspect [容器ID]
2.10 进入正在运行的容器并以命令行交互
docker exec -it 容器ID /bin/bash
或者
docker attach 容器ID
上述两个区别:
- exec:是在容器中打开新的终端,并且可以启动新的进程。
- attach:直接进入容器启动命令的终端,不会启动新的进程。
2.11 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
docker cp 10b9a3588ab9:/tmp/yum.log /root
3、镜像
3.1 commit操作
docker commit
提交容器副本使之成为一个新的镜像。
docker commit -m="提交的描述信息" -a="author" 容器ID 要创建的目标镜像名:[标签名]