一、启停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 版权协议,转载请附上原文出处链接和本声明。
