Docker 入门基础(二)
Docker 常用命令
一. 帮助命令
- 查看docker相关的版本信息 :
docker version
- 查看docker:
docker info
- 列举docker相关命令:
docker --help
二. 镜像命令
- 列出本地主机上的镜像:
docker images [OPTIONS]
OPTIONS | 说明 |
---|---|
-a | 列出本地所有镜像(含中间映像层) |
-q | 只显示镜像ID |
- 查找镜像:
docker search 镜像名称:版本
- 拉取镜像:
docker pull 镜像名称:版本
- 删除镜像:
docker rmi [OPTIONS] 镜像名称:版本
OPTIONS | 说明 |
---|---|
-f | 强制删除镜像 |
-f $(docker images -qa) | 删除全部镜像 |
三. 容器命令
- 下载CentOS镜像演示:
docker pull centos
- 新建并启动容器:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS | 说明 |
---|---|
- -name=“容器新名字” | 为容器指定一个名字 |
-i | 以交互模式运行容器,通常与 -t 同时使用 |
-t | 为容器分配一个伪输入终端,通常与 -i 同时使用 |
-d | 启动守护式进程,默认后台运行 |
-p | 指定端口映射,IP:HOSTPORT:CONTAINERPORT 、IP::CONTAINERPORT 、HOSTPORT:CONTAINERPORT 、CONTAINERPORT |
-P | 随机端口映射 |
- 另起终端查询已启动容器:
docker ps [OPTIONS]
OPTIONS | 说明 |
---|---|
-a | 列出当前所有正在运行和历史上运行过的容器 |
-l | 显示最近创建的容器 |
-n | 显示最近 n 个创建的容器 |
- 停止容器并退出:
exit
- 不停止容器退出:Ctrl+p+q
- 启动容器:
docker start 容器ID或容器名
- 重新启动容器:
docker restart 容器ID或容器名
- 停止容器:
docker stop 容器ID或容器名
- 强制停止容器:
docker kill 容器ID或容器名
- 删除容器:
docker rm 容器ID或容器名
- 启动守护式进程(即默认后台运行,没有前台交互,与docker run -it XXX 不同):
docker run -d IMAGE
问题:使用
docker run -d centos
以后台模式启动一个容器,然后进入docker ps -a
进行查看,会发现容器已经退出。
原因:Docker 机制问题,前台没有运行的应用会认为该容器无事可做,因此Docker 容器后台运行,就必须有一个前台进程。
解决方案:将要运行的程序以前台进程的形式进行。例如:docker run -d centos /bin/sh -c "while true;do echo hello aabb;sleep 2;done"
- 查看容器日志:
docker logs [OPTIONS] 容器ID
OPTIONS | 说明 |
---|---|
-t | 显示打印时的时间戳 |
-f | 跟随最新的日志打印 |
- -tail 数字 | 显示最后多少条 |
- 查看容器内运行的进程:
docker top 容器ID
- 查看容器内部细节:
docker inspect 容器ID
- 进入正在运行的容器并以命令行交互:
docker attach 容器ID
直接进入容器启动命令的终端,不会启动新的进程。
docker exec -it 容器ID bashShell
是在容器中打开新的终端,并且可以启动新的进程。 - 将容器内的数据拷贝到主机上:
docker cp 容器ID:[容器内文件路径] [目的主机路径]
- 提交修改后的容器副本使其成为一个新的镜像:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
常用:docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名:[版本号]