【Docker】(二) 常用命令

  • Post author:
  • Post category:其他


一、启停docker类

启动docker : systemctl start docker 

停止docker : systemctl stop docker 

重启docker : systemctl restart docker 

查看docker的状态 : systemctl status docker

开机启动docker: systemctl enable docker 

查看docker概要信息: docker info

查看docker总体帮助文档: docker --help

二、镜像命令

1、 查询本地镜像

    docker images          列出本地主机上的镜像
   
    docker images -a       列出本地所有的镜像(含历史映像层)

    docker images -q       只显示镜像ID


2、搜索 DockerHub 远程仓库镜像

    docker search XX镜像   搜索某个镜像

    docker search --limit 5 redis  搜索redis排名前五的镜像


3、从DockerHub 拉取/下载镜像

    docker pull xx镜像:tag   下载对应版本的镜像(不写默认tag=latest最新的)

    docekr pull redis:6.0.8  下载6.0.8版本的redis镜像


4、查看镜像所占的空间

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


5、删除镜像

  docker rmi -f 镜像ID     强制删除单个镜像

  docker rmi -f 镜像名1:TAG 镜像名2:TAG   强制删除多个镜像 

  docker rmi -f $(docker images -qa)   【删除全部镜像】 
 

6、虚悬镜像

    仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image


7、推送本地镜像到远程仓库(类似于git)

(1)docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名:[标签名]   提交镜像到本地

   【例】docker commit -m="第一次提交,添加vim命令" -a="dzg" f5e38h649dt  dzg/myubuntu:1.1


(2)docker login --username=xxx 远程仓库地址  登录远程仓库

   【例】docker login --username=dzg registry.cn-hangzhou.aliyuncs.com  登录阿里云仓库

    
(3)docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  给镜像打标签 

   【例】docker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1


(4)docker push TARGET_IMAGE[:TAG]  推动镜像到目标仓库

   【例】 docker push registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1


三、容器命令

1、新建+启动容器

  docker run -d  -p 8888:8080 --name my_tomcat tomcat:8.5.5 后台启动tomcat容器 【推荐】
 
  docker run -it -p 8888:8080 --name my_tomcat tomcat:8.5.5 /bin/bash 交互模式启动tomcat容器      

    【参数说明】

    -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);

    -i:以交互模式运行容器,通常与 -t 同时使用;

    -t:为容器重新分配一个伪输入终端,通常与-i同时使用,也即启动交互式容器(前台有伪终端,等待交互);
        
    -p: 指定端口映射,小写p

    -P: 随机端口映射,大写P

    --name="容器新名字": 为容器指定一个名称;

    /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash


2、查看本机容器

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

    docker ps -a      列出当前所有正在运行的容器+历史上运行过的

    docker ps -q      静默模式,只显示容器编号

    docker ps -l      显示最近创建的容器

    docker ps -n      显示最近n个创建的容器

【例】 docker ps -aq   查看历史与正在运行的所有容器id
      

3、启动/停止/强制停止/重启容器

   docker start 容器ID/容器名   启动容器

   docker stop  容器ID/容器名   停止容器

   docker kill  容器ID/容器名   强制停止容器

   docker restart 容器ID/容器名 重启容器


4、删除容器

    docker rm 容器ID   删除已停止的容器

    docker rm -f $(docker ps -a -q)   【一次性删除多个容器实例】 慎用!

    docker ps -a -q | xargs docker rm  【一次性删除多个容器实例】


5、进入容器
  
    docker exec -it 容器id /bin/bash   进入容器

    docker attach 容器ID               重新进入容器
    
    【说明】

     attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。

     exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。


6、退出容器
  
    exit       run进去容器,exit退出,容器停止

    ctrl+p+q   run进去容器,ctrl+p+q退出,容器不停止


7、查看容器内部信息

    docker logs 容器ID     查看容器日志

    docker top 容器ID      查看容器内运行的进程

    docker inspect 容器ID  查看容器内部细节


8、导入与导出

    (1) docker cp  容器ID:容器内路径 目的主机路径   从容器内拷贝文件到主机上

      【例】 docker cp f5fa58c8c1c4:/usr/local/container.txt  /home/test.txt


    (2) docker export 容器ID > 文件名.tar   导出容器为一个tar包
    
      【例】docker export f5wd24skf45 > abcd.tar.gz


    (3) cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
      
      【例】 cat abcd.tar.gz |docker import - dzg/ubuntu:2.2


9、容器卷 【重点】

      docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录  镜像名 (默认读写)

      docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro  镜像名 (只读)

      docker run -it  --privileged=true --volumes-from 父类  --name u2 ubuntu  容器2继承容器1的卷规则

    【例】
    docker run -d -p 3307:3306
    --privileged=true
    -v /home/dongzhigang/mysql/log:/var/log/mysql 
    -v /home/dongzhigang/mysql/data:/var/lib/mysql 
    -v /home/dongzhigang/mysql/conf:/etc/mysql/conf.d
    -e MYSQL_ROOT_PASSWORD=123456 
    --name mysql8 mysql:latest

      



版权声明:本文为m0_62676056原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。