美文网首页k8sDocker
Docker常用命令

Docker常用命令

作者: 羋学僧 | 来源:发表于2022-07-20 10:52 被阅读0次

    获取镜像的三种方式

    • 从dockerhub获取镜像
    • 本地镜像导出、导入
    • 私有docker仓库
    # 先搜索一下,查看镜像文件是否存在
    docker search 镜像名:tag  tag就是具体的标签版本
    docker search centos
    
    # 查看本地的镜像文件有哪些
    docker images
    docker image ls
    
    # 下载docker镜像
    docker pull centos      # 默认是 centos:latest(最新版本)
    docker pull centos:7.8.2003
    
    # 查看docker镜像的存储路径
    docker info | grep Root
    
    Docker Root Dir: /var/lib/docker
    
    # 镜像文件的存储目录
    ll /var/lib/docker/image/overlay2/imagedb/content/sha256/
    # 该目录下文件的作用是记录镜像和容器的配置关系
    
    # 使用镜像生成不同的容器
    # --it 开启一个交互式的终端       --rm 容器退出时删除该容器
    [root@qzcsbj-harbor ~]# docker run -it --rm centos bash
    [root@f0a706083ed1 /]# cat /etc/redhat-release
    CentOS Linux release 8.4.2105
    [root@f0a706083ed1 /]# exit
    exit
    
    [root@qzcsbj-harbor ~]# docker run -it --rm centos:7.8.2003 bash
    [root@812c562a6bfc /]# cat /etc/redhat-release
    CentOS Linux release 7.8.2003 (Core)
    [root@812c562a6bfc /]# exit
    exit
    

    查看镜像

    # 查看本地的全部镜像
    docker images
    
    # 查看具体的镜像
    docker images centos
    
    docker images nginx
    
    # 指定具体的tag
    docker images centos:7.8.2003 
    
    # 只列出镜像的id
    # -q 只列出id
    docker images -q
    
    # 格式化显示镜像
    # --format "{{}}"这是docker的模板语言
    [root@docker01 ~]# docker images --format "{{.ID}}--{{.Repository}}"
    4cdc5dd7eaad--nginx
    08502081bff6--redis
    9873176a8ff5--ubuntu
    300e315adb2f--centos
    afb6fca791e0--centos
    
    # 以表格形式显示,美化
    docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
    
    # 查看镜像文件是否存在
    docker search 镜像名:tag  tag就是具体的标签版本
    docker search centos
    

    删除镜像

    # 下载镜像
    docker pull hello-world
    
    # 查看镜像id
    docker images hello-world
    
    # 根据镜像的id,名字,摘要等
    # 被删除的镜像,不得有依赖的容器记录
    docker rmi hello-world
    
    # 显示所有的容器,包括未运行的
    docker ps -a
    
    # 删除容器记录
    docker rm e332fe985eac  
    

    镜像管理

    # 批量删除镜像的用法,rm
    # 批量删除镜像,慎用
    docker rmi `docker images -qa`
    
    # 批量删除容器
    docker rm `docker ps -qa`
    
    # 导出镜像
    # 比如默认运行的centos镜像,不提供vim功能,运行该容器后,在容器内安装vim
    # 然后提交该镜像,再导出镜像该镜像为压缩文件,可以发给其他人用
    
    # 运行镜像,生成容器并进入容器
    docker run -it centos:7.8.2003 bash
    
    # 导出镜像
    docker image save centos:7.8.2003 > /opt/centos7.8.2003.tgz
    
    ls -lh /opt
    
    # 导入镜像
    docker rmi `docker ps -aq`
    docker rmi centos:7.8.2003 
    docker image load -i /opt/centos7.8.2003.tgz 
    
    # 查看镜像详细信息
    # 查看docker服务的信息
    docker info
    
    # 查看镜像详细的信息
    docker image inspect 镜像id
    docker image inspect afb6fca791e0
    

    Docker容器管理

    docker run 等于创建+启动
    docker run 镜像名,如果镜像不存在本地,则会在线下载该镜像
    
    注意:容器内进程必须在前台运行,否则容器就会直接退出。
    容器内,必须有一个进程在前台运行。
    自己部署一个容器运行,命令不得再后台运行,前台运行即可。
    我们运行nginx基础镜像,没有运行任何程序,因此容器直接挂掉
    
    1.运行一个挂掉的容器
    # 该写法是错误写法,产生了容器记录,但是容器内并没有程序在跑,因此挂了
    docker run centos:7.8.2003 
    
    2. 运行容器,且进入容器内
    docker run -it centos:7.8.2003 bash
    
    3. 开启一个容器,让它帮你运行某个程序
    docker run centos:7.8.2003 ping -c1 baidu.com
    
    4. 运行一个活着的容器,docker ps可以看到的容器
    # -d参数,让容器在后台跑着(针对宿主机而言)
    docker run -d centos:7.8.2003 ping baidu.com
    
    image.png
    5. 丰富docker运行的参数
    -d 后台运行
    --rm 容器挂掉后自动被删除,使用docker stop 95d无法看到容器记录
    --name 给容器取名
    docker run -d --rm --name pythonav centos:7.8.2003 ping pythonav.cn
    
    6. 查看容器日志
    -f 实时监控日志
    docker logs -f [容器id]
    docker logs f0bca235a3ca | tail -3
    
    7. 进入正在运行的容器空间内
    docker exec -it f0bca235a3ca bash
    
    8. 查看容器的详细信息
    docker container inspect f0bca235a3ca
    
    9. 容器的端口映射
    # 后台运行nginx容器,且改名为nana,且端口映射宿主机的85端口,访问到容器内的80端口
    docker run -d --name nana -p 85:80 nginx
    
    # 查看容器
    docker ps
    
    # 查看容器的端口转发情况
    docker port 3bcaf23f3f49
    
    # 随机端口映射 -P 随机访问一个宿主机的空闲端口,映射到容器内打开的端口
    docker run -d --name nana_nginx_88 -P nginx
    docker ps -a
    
    10. 容器的提交
    # 运行基础的centos:7.8.2003,在容器内安装vim,然后提交新的镜像
    # 新的镜像,再运行出的容器,默认就携带vim了
    [root@qzcsbj-harbor ~]# docker run -it centos:7.8.2003 bash
    [root@39da3ad323b7 /]# yum -y install vim
    [root@39da3ad323b7 /]# exit
    exit
    
    [root@qzcsbj-harbor ~]# docker ps -a
    CONTAINER ID   IMAGE              COMMAND          CREATED              STATUS                        PORTS         NAMES                      
    39da3ad323b7   centos:7.8.2003    "bash"           About a minute ago   Exited (0) 27 seconds ago                   infallible_kepler                                
    
    [root@qzcsbj-harbor ~]# docker commit 39da3ad323b7 nana/centos-vim-7.8.2003
    sha256:aa12ab31b0d8867d87c98a7f9c39d7aa447bdae4028d4fddfef91fdb40aa1d27
    
    [root@qzcsbj-harbor ~]# docker images
    REPOSITORY                 TAG        IMAGE ID       CREATED          SIZE
    nana/centos-vim-7.8.2003   latest     aa12ab31b0d8   20 seconds ago   382MB
    nginx                      latest     4cdc5dd7eaad   43 hours ago     133MB
    centos                     7.8.2003   afb6fca791e0   14 months ago    203MB
    
    [root@qzcsbj-harbor ~]# docker run -it aa1
    [root@b862a92c93dd /]# vim a.txt
    [root@b862a92c93dd /]# cat a.txt
    

    Docker常用命令汇总

    镜像常用命令
        1、搜索镜像
        
            docker search [镜像名称]
        
        2、下载镜像
        
            docker pull [镜像仓库URL]/[镜仓库命名空间]/[镜像仓库名称]:[版本号]
        
        3、查看镜像列表
        
            docker image ls 
            docker images
        
        4、删除镜像
        
            docker rmi [镜像名称|ID]
            
            参数:
                -f : 强制删除
        
        5、清理镜像
        
            docker image prune 
            
            参数:
                -a : 清理所有未被使用的镜像
                -f : 强制删除
        
        6、镜像构建历史
            
            docker history [镜像名称|ID]
        
        7、登录镜像仓库
            docker login [仓库URL] --username '用户名称' --password '密码'
        
        8、上传镜像
        
            docker push [镜像仓库URL]/[镜仓库命名空间]/[镜像仓库名称]:[版本号]
        
        9、保存镜像
        
            1、将容器直接保存为镜像
            
                docker commit [容器名称|ID] [自定义镜像名称]
        
            2、将容器打包成镜像
            
                docker export
                
                docker import 
            
            3、将镜像打包成镜像压缩包
        
                docker save 
                
                docker load
        
        10、镜像标签
    
            docker tag [源镜像ID|名称] [新镜像名称]
        
        11、镜像详细信息
            docker inspect [镜像的ID|名称]
    

    容器常用命令

        docker create : 创建容器,但是未启动
        docker rm : 删除容器
        docker start : 启动容器
        docker inspect : 查看容器的详细信息
        docker cp : 复制
        docker ps : 查看当前系统中正在运行的容器
        docker load : 导入容器
        docker logs : 查看容器日志
        docker exec : 在宿主主机上执行一个容器内部的命令
        docker run : 创建并启动一个容器
        
            参数:
                -d : 以守护进程方式运行
                -p : 固定端口映射
                -P : 随机端口映射
                -i : 打开标准输出
                -h : 设置容器内主机名
                -t : 创建终端
                -e : 设置容器内部的环境变量
                -v : 目录映射
                -m : 设置内存限制(默认:-1 不做任何限制)
                --name  : 设置容器名称
                --rm    : 当容器生命周期结束时,立即删除容器
                --link  : 连接一个容器
        
        docker stop : 停止容器
        docker restart : 重启容器
        docker rename : 重命名容器
    

    相关文章

      网友评论

        本文标题:Docker常用命令

        本文链接:https://www.haomeiwen.com/subject/bteeirtx.html