首页 > 其他分享 >37_常用命令

37_常用命令

时间:2024-03-13 10:57:12浏览次数:27  
标签:容器 CONTAINER -- 37 常用命令 镜像 docker ID

常用命令

  1. 启动常用命令
启动docker:               systemctl start docker
停止docker:               systemctl stop docker
重启docker:               systemctl restart docker
查看docker状态:           systemctl status docker
开机启动:                 systemctl enable docker
查看docker概要信息:       docker info
查看docker总体帮助文档:   docker --help
查看docker命令帮助文档:   docker 具体命令 --help
  1. 镜像常用命令
docker images 列出本地主机上的镜像
    参数:
        [ -a ] 含历史映像层
        [ -q ] 只显示镜像ID

docker search IMAGE_NAME 搜索镜像
    参数:
        [ --limit number ]

docker pull IMAGE_NAME[:TAG] 拉取镜像

docker system df  查看镜像/容器/数据卷所占的空间


docker rmi [-f 强制] IMAGE_NAME/IMAGE_ID  删除单个镜像

docker rmi -f $(docker images -qa) 删除全部

  1. 容器命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS:
    --name="容器名字"
    -d 后台运行容器
    -i 以交互模式运行容器
    -t 为容器重新分配一个伪输入终端
    -P 随机端口映射 大写P
    -p HOST_PORT:CONTAINER_PORT 指定端口映射 小写p
    -v HOST_DIR:CONTAINER_DIR 映射目录到容器

IMAGE:
    IMAGE:TAG

COMMAND:
    /bin/bash 在容器执行的命令

docker ps 列出当前所有正在运行的容器
    参数:
        -a 全部
        -l 最近创建
        -n 最近n个
        -q 只显示ID

docker start        CONTAINER_NAME/CONTAINER_ID   启动停止的容器
docker restart      CONTAINER_NAME/CONTAINER_ID   重启容器
docker stop         CONTAINER_NAME/CONTAINER_ID   停止容器
docker kill         CONTAINER_NAME/CONTAINER_ID   强制停止容器
docker rm           CONTAINER_ID                  删除单个容器
docker rm -f $(docker ps -qa)                     删除全部容器
docker logs         CONTAINER_ID                  容器日志
docker top          CONTAINER_ID                  容器内运行的进程
docker inspect      CONTAINER_ID                  查看容器配置
docker exec -it     CONTAINER_ID /bin/bash        交互式进入正在运行的容器, exit不会导致容器停止
docker attach       CONTAINER_ID                  进入正在运行的容器, exit会导致容器停止

一般用-d后台启动的程序, 再用exec进入对应容器实例


docker cp CONTAINER_ID:CONTAINER_DIR/FILE HOST_DIR/ 拷贝容器文件到宿主机

docker export CONTAINER_ID > FILE.tar.gz             导出快照
cat FILE.tar.gz | docker import - CONTAINER_NAME:TAG 导入快照

docker save -o FILE.tar.gz CONTAINER_NAME:TAG        导出镜像
docker save CONTAINER_NAME:TAG > FILE.tar.gz         导出镜像
docker load -i FILE.tar.gz                           导入镜像
docker load <  FILE.tar.gz                           导入镜像

export 和 save的区别:
    docker load命令导入镜像库存储文件到本地镜像库;
    docker import命令导入一个容器快照到本地镜像库.
    容器快照将会丢弃所有的历史记录和元数据信息, 
    而镜像存储文件将保存完整记录, 体积也会更大.

Docker环境信息    info、version
镜像仓库命令      login、logout、pull、push、search
镜像管理          build、images、import、load、rmi、save、tag、commit
容器生命周期管理  create、exec、kill、pause、restart、rm、run、start、stop、unpause
容器运维操作      attach、export、inspect、port、ps、rename、stats、top、wait、cp、diff、update
容器资源管理      volume、network
系统信息日志      events、history、logs
  1. 联合文件系统
镜像加载原理
docker的镜像实际上由一层一层的文件系统组成, 这种层级的文件系统就是 UnionFS.

UnionFS
联合文件系统.Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统, 
它支持对文件系统的修改作为一次提交来一层层的叠加, 同时可以将不同目录挂载到同一个
虚拟文件系统下(unite several directories into a single virtual filesystem).
Union 文件系统是 Docker 镜像的基础.镜像可以通过分层来进行继承, 
基于基础镜像(没有父镜像), 可以制作各种具体的应用镜像.

特性:一次同时加载多个文件系统, 但从外面看起来, 只能看到一个文件系统, 
联合加载会把各层文件系统叠加起来, 这样最终的文件系统会包含所有底层的文件和目录

bootfs
boot file system.主要包含bootloader和kernel, bootloader主要是引导加载kernel,
Linux刚启动时会加载bootfs文件系统, 在Docker镜像的最底层是bootfs.
这一层与我们典型的Linux/Unix系统是一样的, 包含boot加载器和内核.
当boot加载完成之后整个内核就都在内存中了, 此时内存的使用权已由bootfs转交给内核, 
此时系统也会卸载bootfs.

rootfs
root file system.在bootfs之上.包含的就是典型 Linux 系统中的 /dev, /proc, /bin,
/etc 等标准目录和文件.rootfs就是各种不同的操作系统发行版, 比如Ubuntu, Centos等等.

对于一个精简的OS, rootfs可以很小, 只需要包括最基本的命令、工具和程序库就可以了, 
因为底层直接用Host的kernel, 自己只需要提供 rootfs 就行了.
由此可见对于不同的linux发行版, bootfs基本是一致的, rootfs会有差别,
因此不同的发行版可以公用bootfs.
  1. Commit 创建自定义镜像
docker commit [OPTIONS] CONTAINER_ID NEW_IMAGE:[TAG]
    OPTIONS:
        -m="附加说明信息"
        -a="作者"
        docker commit -m "add vim" -a="zk" f8c8c578d3c1 zk/ubuntu:1.0

docker commit [OPTIONS] CONTAINER_ID [REPOSITORY[:TAG]]
二、 镜像仓库
  1. 阿里云镜像仓库
登陆
docker login --username=XXX registry.cn-hangzhou.aliyuncs.com

拉取
docker pull registry.cn-hangzhou.aliyuncs.  com/ns-2023/lib-2023:[镜像版本号]

推送
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/ns-2023/lib-2023:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/ns-2023/lib-2023:[镜像版本号]

  1. 搭建自己的镜像仓库
# 拉取镜像
docker pull registry

# 启动registry容器
docker run -d -p 5000:5000 -v /registry:/tmp/registry[:rw/ro 读写挂载/只读挂载] --privileged=true registry

# 将改动的容器转为镜像
docker commit -m="add vim" -a="zk" 4d69fa4a6400 mycentos:1.0

# 查看本地私有仓库
curl -XGET http://127.0.0.1:5000/v2/_catalog

# 配置文件添加 insecure-registries 支持http
cat /etc/docker/daemon.json
{
"registry-mirrors":[
   "https://bhtknto5.mirror.aliyuncs.com",
   "https://yo3sdl2l.mirror.aliyuncs.com",
   "https://blkjc4x3.mirror.aliyuncs.com",
   "https://gfmnzvu1.mirror.aliyuncs.com",
   "https://yxzrazem.mirror.aliyuncs.com",
   "http://hub-mirror.c.163.com",
   "https://registry.docker-cn.com",
   "http://hub-mirror.c.163.com",
   "https://docker.mirrors.ustc.edu.cn"
   ],
   "insecure-registries": ["127.0.0.1:5000"]
}

# 推送
docker tag mycentos:1.0 127.0.0.1:5000/mycentos:1.0
docker push 127.0.0.1:5000/mycentos:1.0   

# 查看
curl -XGET http://127.0.0.1:5000/v2/_catalog
{"repositories":["mycentos"]}

# 拉取
docker pull 127.0.0.1:5000/mycentos:1.0
  1. 快速继承其他容器的卷 --volumes-from CONTAINER_ID/CONTAINER_NAME
docker run -it --privileged=true --name centos1 -v /root/zk:/tmp/zk centos:7 /bin/bash
docker run -it --rm --privileged=true --name centos2 --volumes-from centos1 centos:7 /bin/bash
# 进入容器 centos 查看 /tmp/zk

标签:容器,CONTAINER,--,37,常用命令,镜像,docker,ID
From: https://www.cnblogs.com/ckh2023/p/18070143

相关文章

  • Elasticsearch探秘:原理剖析、高级运用与实战经验【文末送书-37】
    文章目录Elasticsearch探秘:原理剖析、高级运用与实战经验进阶使用方法数据建模与映射实战工程案例索引阻塞的种类什么时候使用阻塞?一本书讲透Elasticsearch:原理、进阶与工程实践【文末送书-37】Elasticsearch探秘:原理剖析、高级运用与实战经验Elasticsearch作为一个......
  • 揭秘Docker镜像:概念、原理、特性的全方位解读与实战常用命令解析
    在当今的云原生时代,Docker凭借其轻量级容器技术彻底改变了软件交付和部署的方式。而Docker镜像作为容器的基石,其背后的奥秘和实际应用更是值得我们深入探讨。本文将全面解析Docker镜像的概念、底层原理、独特特性以及日常运维中常用的命令,让您对Docker镜像有更深层次的理解与掌......
  • 代码随想录算法训练营第四十四天|完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
    完全背包题目链接:52.携带研究材料(第七期模拟笔试)(kamacoder.com)思路:完全·背包问题和01背包的区别在于同一个物品可以被重复放入,在代码里的区别就是内部遍历背包的for循环由倒序变成了正序。而且如果我们压缩了一维的话,如我的做法,两个for循环的顺序也是无所谓的。#include<i......
  • ipdb常用命令总结
    在Python中,ipdb是一个基于pdb的增强型交互式调试器,它结合了IPython的强大功能。以下是ipdb常用的调试命令:启动调试会话:在代码中插入importipdb;ipdb.set_trace()来启动调试器。执行控制命令:n(ext)或Enter:执行下一行代码。s(tep):进入函数或方法内部。c(o......
  • Java线上诊断神器Arthas:常用命令详解!
    有关Arthas基本介绍、安装部署、arthasidea插件在上篇文章已经介绍过,这里就不在重述。文章地址:Java诊断工具Arthas:开篇之watch实战上篇重点讲了watch命令。这篇把剩余一些重要命令讲解演示下。一、trace命令作用:展示方法内部调用路径,并输出方法路径上的每个节点上耗时......
  • Linux查看文件内容常用命令
    前言在Linux系统中,查看文件内容是进行系统管理和日常操作的基本技能之一。通过一些简单而有效的命令,您可以快速浏览文件的内容,检查配置文件、日志文件等。本文将介绍几个常用的Linux命令,帮助您轻松地查看文件内容。查看文件类型1、file命令:filefile_name查看文本内容查看......
  • redis常用命令
    1、启动Redis>redis-server[--port6379]如果命令参数过多,建议通过配置文件来启动Redis。>redis-server[xx/xx/redis.conf]6379是Redis默认端口号。2、连接Redis>./redis-cli[-h127.0.0.1-p6379]3、停止Redis>redis-clishutdown >killredis-pid以上......
  • 37. 敌人意图 AI 逻辑
    本节目标在玩家回合,需要显示敌人的意图,然后在敌人回合执行意图代码实现拼UI在HealthBar上面添加意图的图片和文字然后在HealthBarController上面添加意图图片和意图文字添加敌人意图敌人意图ScriptableObject敌人意图实例Effect把意图添加到Enemy类......
  • vs2019单独重新安装python37_64失败解决办法(bilibili上我最早写的是https://www.bilib
    上个周末的时候,我发现用vs2019编写python的时候。代码高亮出现了奇怪的问题,进入解决方案的时候,print还是蓝色的,但是过了几秒钟后就变为黑色了,因此在最开始的时候我试图通过换一个皮肤和在管理扩展里面找扩展来解决,但是还是有相关问题。于是到vs2019对应的python文件夹找问题,目录是......
  • Redis数据类型及其常用命令
    一、Redis字符串(String)String是Redis最基本的类型,一个key对应一个value,它是二进制安全的(String可以包含任何数据,如jpg图片或者序列化的对象),一个字符串value最多可以是512MBSETkeyvalue[NX|XX][GET][EXseconds|PXmilliseconds|EXATunix-time-seconds|PXATunix-......