栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker常用命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker常用命令

Docker的基本组成

docker利用容器(Container)独立运行的一个或一组应用;
容器时用镜像创建的运行实例
容器可以被启动、开始i、停止、删除。每个容器都是相互隔离的】保证安全的平台;
docker相当于一个精简版的虚拟机,只保留了运行应用是所需要的库(包括root用户权限、进程空间、用户空间和网络空间等和运行再其中的应用程序),摒弃了硬件模拟等;

docker三要素
  1. 镜像(images)相当于每个容器的模板
  2. 容器(container)每个容器的实例,应用都是部署在容器中的
  3. 仓库(repository)相当于java中的maven仓库,有一些打包好的镜像
    镜像:是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需要的所哟内容,包括代码、运行时、库、环境变量和配置文件
    Docker镜像都是只读的,当容器地洞是,一个新的可写层被加载到镜像顶部。这一层通常被叫做容器层,容器层之下的都叫做镜像层;
docker的安装建议根据官网提示进行操作

https://docs.docker.com/engine/install/centos/

由于docker仓库默认使用海外镜像库,建议配置成国内阿里云或者网易镜像库 docker常用命令
  1. docker -version //版本号

  2. docker -info //容器信息

  3. docker --help //docker帮助命令

  4. docker run [镜像名称] //运行一个镜像的实例(docker run 镜像)

  5. docker search 【镜像名称】从镜像仓库中搜索镜像

docker 镜像命令

docker images //列出本地目前已有的镜像

	1. REPOSITORY 表示镜像源
	2. TAG:镜像的标签(docker run时不加tag默认就是latest)
	3. IMAGE ID:镜像的id
	4. CREATED创建时间
	5. size镜像大小

docker images -a(镜像是分层的)显示所有包含中间镜像

docker images -qa 显示当前镜像所有镜像的id

docker images --digests显示镜像的摘要信息
doucker pull [镜像名字] TAG下载镜像(如果不加tag的话等价于下载最新版的,等价于 docker pull [镜像名]:latest)

docker images -qa //展示所有本地docer镜像id
docker rmi [唯一镜像名或镜像id] :tag //删除镜像

  • docker rmi -f [唯一镜像名或镜像id] :tag //强制删除删除镜像
  • 同时删除多个镜像以空格分隔
  • docker rmi -f ${docker images -qa}删除所有本地镜像
docker容器命令

(有镜像才能创建容器)所以在创建容器前要先pull下相应的镜像

  1. 新建并启动容器 doker run [options] --name [镜像id]
    * --name=’容器的新名字‘:为容器指定一个名称(如果不指定name则 默认随机分配)
    * options:启动容器时需要的启动模式通常使用-it
    * -i:以交互模式运行容器,通常与-t同时使用(启动容器后进行交互)
    * -t:为容器重新分配一个伪终端,通常与-i同时使用(登录容器后创建一个伪终端**命令窗口)
    * -d:后台运行容器,并返回容器id
    * -P:随机端口映射
    * -p:指定端口映射,有以下四种格式
    1. hostPort:containerPort
    比如docker run -it -p 8888:8080 【镜像id】,表示将容器中的8080端口启动容器后映射到宿主的8888端口
    上面的大写P是随机分配↑

  2. 列出当前所有正在运行的docker容器: docker ps

    • OPTIONS
    • -a 列出当前所有正在运行的容器+历史上运行过的
    • -l:显示最近创建的容器(上一个容器)
    • -n:显示最近n个创建的容器
    • -q静默模式,只显示容器编号
    • –no-trunc:不截断输出
  3. 退出容器 exit或者ctrl+p+q

    • exit关闭容器并退出
    • ctrl+P+Q退回到宿主机但不关闭容器
  4. 启动已经退出的容器doker start[容器id]

  5. 重启容器:docker restart [容器id]

  6. 关闭容器:docker stop

  7. 强制关闭容器:docker kill [容器id]

  8. 删除已停止的容器:docker rm [容器id](多个容器空格间隔,docker -f 强制删除)批量删除参照批量删除镜像,注意rm是删除容器,rmi是删除镜像

  9. 后台启动容器docker run -d --name [镜像id]

    • 问题:docker ps -a查看时发现进程容器已经退出,是因为Docker容器后台运行是必须有一个前台进程是启动的,容器运行的命令如果不是一些挂起的命令比如(top、tail),容器就会自动退出,比如容器当中部署了nginx是以守护进程的方式运行的,也会导致容器自动退出,所以要运行的程序要以前台进程的形式运行 例如docker run -d centos /bin/sh -c “while true;do echo hello xxxx;lsleep 2;done” shell编程没两秒钟打印hello xxxx
  10. 查看容器日志:docker logs -t -f --tail [容器id]

    • -t 加入时间戳
    • -f跟随最新的日志打印
    • –tail xx 显示最后xx条
  11. 查看容器内的进程:docker top [容器id]

  12. 查看容器内部细节:docker inspect 容器id

  13. 进入正在运行的容器:docker exec -it 【容器id】或者docker attach 【容器id】
    * docker attach 【容器id】 进入到容器的根目录
    * docker exec -it 【容器id】【需要在容器中执行的命令】在容器外面进行容器中的命令操作例如:docker exec -it 【容器id】 ls -l /tmp 表示在宿主机中查看容器内tmp目录下的内容,但是并没有进入到容器

  14. 从容器中拷贝数据到宿主机:docker cp 【容器id】:容器内部路径 目的主机路径

  15. 提交容器副本使之成为一个新的容器镜像:docker commit

    • docker commit -m=“提交的描述信息” -a “作者" [容器id] 要创建的目标镜像名称:[标签名]
Docker容器数据卷
即:容器关闭后运行数据就丢失了,容器数据卷既是容器内的运行数据持久化

Docker的理念:

  • 将运用于运行的而环境打包形成容器运行,容器内的运行数据可以持久化
  • 容器间的数据可以共享(Docker容器产生的数据,如果用docler commit是生成新的镜像是可以保存的)

特点:

  1. 数据卷可在容器之间共享或重用数据
  2. 卷中的更改可直接生效
  3. 数据卷中的更改不会包含在镜像的更新中
  4. 数据卷的生命周期一直持续到没有容器使用它为止
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841342.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号