Docker的使用 Docker的常用命令

Docker和Docker的使用

Docker架构

image

  • Docker daemon( Docker守护进程):Docker daemon是一个运行在宿主机( DOCKER-HOST)的后台进程。可通过 Docker客户端与之通信。
  • Client( Docker客户端):Docker客户端是 Docker的用户界面,它可以接受用户命令和配置标识,并与 Docker daemon通信。图中, docker build等都是 Docker的相关命令。
  • Images( Docker镜像):Docker镜像是一个只读模板,它包含创建 Docker容器的说明。它和系统安装光盘有点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行 Docker镜像中的程序。
  • Container(容器):容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API或者 CLI命令来启停、移动、删除容器。
  • Registry:Docker Registry是一个集中存储与分发镜像的服务。构建完 Docker镜像后,就可在当前宿主机上运行。Docker Hub上存放着大量优秀的镜像, 我们可使用Docker命令下载并使用。

Docker常用命令

基本命令
命令作用
docker version可以查看docker的版本信息
docker info查看docker 的系统信息,镜像和容器数量
docker --help查看所有的docker命令
docker 命令 --help查看当前命令的帮助信息
docker system df显示docker详情
docker volume rm 数据卷的文件夹删除docker的数据卷文件夹
docker volume prune删除没用的数据卷
docker volume ls查看docker 的volume
docker network ls查看docker的网络

镜像命令
命令作用参数示例 & 解释
docker run [参数] 镜像名启动镜像-d 后台运行 --rm 用完即删docker run -p 8080:8080 -d tomcat
docker images查看本地所有的镜像-a 显示所有 -q 只显示id名称为镜像为虚悬镜像:只是显示镜像信息但是其实并没有在容器中
docker search 镜像名搜索镜像列表--filter 过滤 建议直接去dockerHubdocker search mysql --filter=STARS=5000 过滤STARS大于5000的镜像
docker pull 镜像名从远端获取镜像docker pull tomcat 默认为 lastest版本
docker rmi 名字或id删除指定镜像-f $(docker images -aq) 删除所有镜像docker rmi tomcat 可以通过空格删除多个镜像
docker image prune删除虚悬镜像可能由 docker pull 或 docker build 触发
docker tag 镜像id 新的镜像名称:版本更改镜像的信息

docker run 说明

参数说明

  • –name 给容器指定名称 --name tomcat1
  • -d 让容器在后台运行 (守护态运行)
  • -it 使用交互方式运行 进入容器 docker run -it centos /bin/bash /bin/bash 使用bash进行交互
  • -p 8080:8080 指定端口 左边为宿主机端口 右边为容器端口
  • -P 随机指定端口
  • -v ./webapps/ROOT/:/usr/tomcat/webapps/ROOT/ 数据卷 左边宿主机的映射路径 右边容器的映射路径 中间以 :冒号隔开 如果目录不存在会自动创建
  • -e 配置环境变量
  • 如果没有使用 -d 启动容器 想要退出容器的话 按 CTRL+P+Q 可以不退出容器 退出到容器外

docker run -v 说明
  • 挂载分为 具名挂载匿名挂载

匿名挂载

  • docker run -v /etc/nginx/conf 这个是匿名挂载 只指定容器内目录 不指定宿主机目录
    • 这种情况下 docker 会为该容器 随即创建一个目录

具名挂载

  • docker run -v conf:/etc/nginx/conf 这个是具名挂载 指定卷名称和容器内目录
    • 这种情况下docker会根据你指定的名称生成目录

这两种挂载方式生成的目录在 docker的核心目录

/var/lib/docker/volumes # docker存放数据卷的目录
# 进入目录 可以查看 所有的数据卷
root@yufire:/var/lib/docker/volumes# ls
33c1fdb0df03784e20d585bce84266e40a032ce3bb4d26b9f2467c521f3b2d21  ecc57ad17f08d760aab21286e28eb6da56bb8d483d1f43e3fc5d5293d0263824  redis.conf
5c061cd30891f00fb7e44e02f8309cb982083c04ce03050b32a8b11d4f4fa38c  metadata.db

指定目录挂载

  • docker run -v /etc/nginx/conf:/etc/nginx/conf - 这个是指定目录挂载 容器和宿主机目录共享 自动同步

docker run --volumes-from 说明

容器间数据同步 (共享)

docker run -d --name nginx01 nginx  # 运行主容器

docker run -d --name nginx02 --volumes-from nginx01  # 使用子容器继承父容器
# 两个容器之间的数据就可以胡互通了
  • 如果被继承的父容器关闭了 数据还在吗?
  • 答案是还在: 任意子容器在运行的话 即使只有一个 数据也不会丢失
  • 挂载的容器之间 会进行数据同步 会互传数据

结论

  1. 这种方法可以用作集群之间的配置共享以简化配置

docker pull 说明

如果您下载的镜像本地已经存在低版本的话 docker pull 会进行 分层

分层即: 可以使用本地已经有的低版本与高版本共用的地方 直接使用本地的 在下载其他不一样的地方

  • 好处: 大大节省了存储空间

容器命令
命令作用参数示例
docker rm 名字或id删除指定容器-f 强制删除 $(docker ps -aq) 删除全部容器docker rmi tomcat docker rim -f tomcat
docker ps查看正在运行的容器-a 查看所有的容器 包括没运行的 -q 只查看容器的id
docker stats id查看容器占用宿主机的资源情况
docker start id启动已停止的容器docker start 容器id
docker restart id重启已经停止的容器
docker stop id停止正在运行的容器docker stop 容器id
docker kill id杀死容器docker kill 容器 id 容器报错的话可以使用该命令
docker exec -it name或id /bin/bash进入正在运行的指定容器/bin/bash 为怎么交互 Ctrl+D 或 exit 退出
docker attach 容器id进入容器 第二种方式直接进入
docker container prune删除所有已停止的容器
docker build -t name .构建Dockerfile-t 指定构建镜像的名称 .代表上下文
docker cp 宿主机目录 容器ID:/容器路径从宿主机拷贝文件到容器里docker cp /usr/local/tomcat 96f7f14e99ab:/usr/local/tomcat
docker cp 容器ID:/容器路径 宿主机路径从容器拷贝文件到宿主机docker cp 96f7f14e99ab:/usr/local/tomcat /usr/local/tomcat
docker logs id查看容器启动的日志-tf --tail 10 显示10条日志docker logs tomcat或者id
docker top id查看容器的进程docker top 96f7f14e99ab
docker inspect id查看容器的详细信息(元数据)
docker history id查看镜像是怎么构建出来的

docker exec 命令说明

  • docker exec -it 容器id /bin/bash 以交互模式进入容器 使用 bash进行交互

docker命令大全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值