docker常用命令总结

24 篇文章 0 订阅

docker常用命令

扯一句: docker可以看作是小型的Linux, 启动快、 方便, 由go语言开发。
docker pull hello-world # 从远程仓库拉取一个入门镜像, 不写TAG默认是latest, 以下都是了
在这里插入图片描述
docker images # 查看拉取的镜像
在这里插入图片描述
docker tag hello-world xxd_hello_world:1.0 #给镜像打个标签
在这里插入图片描述
注: hello-world 和 xxd_hello_world 的 IMAGE ID 是
完全一致的,它们实际上指向了同一个镜像文件,只是别名不同而巳。docker tag命令添
加的标签实际上起到了类似链接的作用。

docker run hello-world # 用命令跑一跑, 镜像生成容器以及容器运行(这样的不是后台运行的执行完容器就停止了)
在这里插入图片描述
docker ps # 这个命令可以查看正在运行的容器, 如果想要查看以及停止的容器, 加个参数 -a 即可
在这里插入图片描述
docker inspect fce # 这里的docker inspect命令是查询镜像详情,fec 是镜像的ID
在这里插入图片描述
docker search centos # 搜索命令, 从远程仓库搜索centos镜像
在这里插入图片描述
注: 没有 / 符号的为官方镜像, 有的则为个人上传的镜像。可选参数:
-f: 过滤输出内容;
--limit:限制输出结果个数, 默认为 25 个;

docker rmi miko2u/centos6:latest # 根据全名删除镜像, 可选参数:-f 强制删除
在这里插入图片描述
注: 使用Docker一段时间后, 系统中可能会遗留一些临时的镜像文件, 以及一些没有被使
用的镜像, 可以通过docker image prune命令来进行清理。

docker commit -a "xxd" -m "this is test" -p 7787 ubuntu_test # 基于容器保存镜像, -a: 作者信息 -m: 提交消息 -p: 提交时暂停容器运行
在这里插入图片描述
docker save -o ubuntu.tar ubuntu # 存出镜像
docker load -i ubuntu.tar # 导入镜像
在这里插入图片描述
docker create ubuntu # 创建容器
docker start 9d # 启动容器
docker restart 9d #重新启动容器
docker run -it ubuntu #创建+启动容器, 并进入容器, 默认/bin/bash, ,-t: 选项让 Docker 分配一个伪终端并绑定到容器的标准输入上, -i: 让容器的标准输入保持打开
docker stop b7 # 停止容器
在这里插入图片描述
注: ctrl + p + q 将容器以后台守护态形式运行, -d类似, 但-d若无进程运行, 则会停止。

docker logs 6d # 查看容器输出
在这里插入图片描述

参数:

  • - details 打印详细信息
  • - f 持续保持输出
  • - since 输出从某个时间开始的日志
  • - tail 输出最近的若干日志
  • - t 显示时间戳信息
  • -until 输出某个时间之前的日

docker container prune # 删除所有停止的容器
在这里插入图片描述
docker exec -it 13 # 重新进入正在运行的容器
在这里插入图片描述
docker rm 1e # docker容器删除

在这里插入图片描述
docker export -o ubuntu_containner.tar 13 # 导出容器
docker import ubuntu_containner.tar xxd/ubuntu # 导入容器在这里插入图片描述
注: 实际上,既可以使用 docker load 命令来导入镜像存储文件到本地镜像库,也可以使
docker import 命令来导入一个容器快照到本地镜像库, 这两者的区
别在于, 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),
而镜像存储文件将保存完整记录,体积更大。 此外,从容器快照文件导人时可以重新指定标
签等元数据信息。

docker container

  • inspect 查看容器详情
  • top 查看容器内进程
  • stats 查看容器内统计信息
其它容器命令

docker cp redis-4.0.2 77dd:/root/ # 命令支持在容器和主机之间复制文件, 将本机的redis-4.0.2复制到77dd容器ID的/root目录下
在这里插入图片描述

docker container diff 77dd # 查看容器内文件系统的变更
在这里插入图片描述
docker container port CONTAINER # 查看端口映射

私有仓库搭建
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注: 这里会报个错, The push refers to repository [129.204.94.106:5000/ubuntu]
Get https://129.204.94.106:5000/v2/: http: server gave HTTP response to HTTPS client,
意思是
服务器向使用HTTPS协议客户端应答了HTTP响应, 现在我们将客户端支持HTTP, vim /etc/docker/daemon.json 添加"insecure-registries":["IP地址:5000"]即可, 重启。

数据卷相关
docker run -itv /home/xxd/docker:/home/docker ubuntu # bind数据卷,命令: docker run -it -v /宿主机绝对路径目录: /容器内目录 镜像名
在这里插入图片描述
docker run -itv /home/xxd/docker2:/home/docker2:ro ubuntu #挂载的时候还可以给数据卷加上权限,假如我们要宿主机只能读取容器的数据卷内容不能修改,我们可以添加只读权限, 命令: docker run -it -v /宿主机绝对路径目录 : /容器内目录 :ro 镜像名
在这里插入图片描述

docker run -it --name parent -v /home/xxd/docker3:/home/docker3 ubuntu
docker run -it --name son1 --volumes-from parent ubuntu
docker run -it --name son2 --volumes-from parent ubuntu
以上是数据卷共享命令, 只有有一个容器使用数据卷, 都可以进行数据共享, 比如父容器关了, 两个子容器间依旧数据共享。
在这里插入图片描述
注: 退出容器并让容器在后台继续运行使用: ctrl + p + q

数据卷备份

这个命令较复杂- 3 -

docker run --name test1 -itv /home/xxd/backup_volumes:/home ubuntu # 先bind一个数据卷准备备份, 或者创建一个数据卷一样的

docker run --name test2 --volumes-from test1 -it -v $(pwd):/docker_backup_test ubuntu tar cvf /docker_backup_test/home.tar /home # docker run --name 新容器的名字 --volumes-from 要备份的容器的名字 -it -v 本机要bind的路径(现在是当前路径): 容器中要bind的路径 镜像 tar cvf /容器中要bind的路径/压缩好文件的名字 数据卷名字
在这里插入图片描述
这里备份好的文件在本机, 叫home.tar

还原使用的是类似命令, 可以将压缩文件弄到文件后再解压(分开写), 不要再踩坑了

docker run -itd -p 8000:5001 ubuntu # 端口映射, 本机8000映射容器5001
docker port aa 5001 # 查看端口
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值