Docker学习(三)常用命令

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]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值