1. Docker 容器信息
#查看docker容器版本
docker version
#查看docker容器信息
docker info
#查看docker容器帮助
docker --help
2. 镜像命令
2.1 镜像查看
# 列出本地镜像
docker images
# 列出本地所有镜像(含中间映射层)
docker images -a
# 只显示镜像id
docker images -q
# 显示镜像摘要信息
docker images --digests
# 显示镜像完整信息
docker images --no-trunc
# 显示指定镜像的历史创建,镜像大小和日期
docker history -H centos
2.2 镜像搜索
# 搜索仓库centos镜像
docker search centos
# --filter=stars=60 : 只显示stars>=60的镜像
docker search --filter=stars=60 centos
# --no-trunc 显示镜像完成描述
docker search --no-trunc centos
2.3 镜像下载
# 下载镜像
docker pull 镜像名字[:TAG]
# 下载centos官方最新镜像,相当于docker pull centos:latest
docker pull centos
# 下载仓库所有centos镜像
docker pull -a centos
2.4 镜像删除
# 单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
# 强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
# 多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
# 删除本地全部镜像
docker rmi -f $(docker images -q)
2.5 镜像构建
#(1)编写dockerfile
cd /docker/dockerfile
vim mycentos
#(2)构建docker镜像
docker build -f /docker/dockerfile/mycentos -t mycentos:1.1
3. 容器命令
3.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
# 使用centos:latest镜像以交互式模式启动一个容器
docker run -it centos
docker run -d centos
问题:然后docker ps -a进行查看,会发现容器已经退出
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令 (比如运行top,tail) ,就是会自动退出的。
这个是docker的机制问题,比如你的web容器,我们以nginx为例,正常情况下,我们配置启动服务只需要启动响应的service即可。例如
service nginx start
但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用,这样的容器后台启动后,会立即自杀因为他觉得他没事可做了.所以,最佳的解决方案是将你要运行的程序以前台进程的形式运行
3.2 启动容器
docker start 容器ID或容器签名
3.3 重启容器
docker restart 容器ID或容器签名
3.4 退出容器
两种退出方式
exit 容器停止退出
ctrl+P+Q 容器不停止退出
3.5 进入容器
docker exec -it 容器ID /bin/bash
docker attach 容器ID
上述两个区别
attach 直接进入容器启动命令的终端,不会启动新的进程
exec 在容器中打开新的终端,并且可以启动新的进程
3.6 停止容器
docker stop 容器ID或容器签名
3.7 强制停止容器
docker kill 容器ID或容器签名
3.8 删除已停止的容器
docker rm 容器ID -f
一次性删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
3.9 容器查看
# 查看正在运行的容器
docker ps
# 查看正在运行的容器的ID
docker ps -q
# 查看正在运行+历史运行过的容器
docker ps -a
# 显示运行容器总文件大小
docker ps -s
##显示最近创建容器
docker ps -l
##显示最近创建的3个容器
docker ps -n 3
##不截断输出
docker ps --no-trunc
# 获取镜像centos的元信息
docker inspect centos
3.10 容器日志
# 查看redis容器日志,默认参数
docker logs rabbitmq
# 查看redis容器日志,参数:-f 跟踪日志输出;-t 显示时间戳;--tail 仅列出最新N条容器日志;
docker logs -f -t --tail=20 redis
# 查看容器redis从2019年05月21日后的最新10条日志。
docker logs --since="2019-05-21" --tail=10 redis
3.11 容器进程
# 列出redis容器中运行进程
docker top 容器ID
3.12 容器与主机间的文件拷贝
docker cp 容器ID:容器内路径 目的主机路径
# 将rabbitmq容器中的文件copy至本地路径
docker cp rabbitmq:/[container_path] [local_path]
# 将主机文件copy至rabbitmq容器
docker cp [local_path] rabbitmq:/[container_path]/
# 将主机文件copy至rabbitmq容器,目录重命名为[container_path](注意与非重命名copy的区别)
docker cp [local_path] rabbitmq:/[container_path]