美文网首页
Docker镜像的基本命令

Docker镜像的基本命令

作者: arkliu | 来源:发表于2022-12-07 08:48 被阅读0次

    镜像是什么

    镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境,和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件。
    如何获得镜像

    • 从远程仓库下载
    • 从其他本地拷贝
    • 自己制作一个镜像DockerFile

    帮助命令

    docker version  //显示docker的版本信息
    docker info  // 显示docker的系统信息
    docker 命令  --help   // 万能命令
    
    

    docker服务

    systemctl start docker  启动docker服务
    systemctl stopdocker  停止docker服务
    systemctl restartdocker  重启docker服务
    systemctl status docker  查看docker服务状态
    systemctl enable docker  设置开机启动docker服务
    

    镜像命令

    docker images 查看所有本地的主机上的镜像

    lh@lh-pc:~$ docker images
    REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
    hello-world   latest    feb5d9fea6a5   13 months ago   13.3kB
    
    REPOSITORY      镜像的仓库源
    TAG       镜像的标签
    IMAGE ID    镜像的id
    CREATED         镜像的创建时间
    SIZE   镜像的大小
    
    # 可选项
    -a   列出所有的镜像
    -q   只显示镜像id
    
    
    image.png

    docker search 搜索镜像

    image.png
    可选项:
    --通过搜索来过滤
    --filter=STARS=3000   #搜索出来的镜像就是STARS大于3000的
    
    
    image.png

    docker pull下载镜像

    lh@lh-pc:~$ docker pull mysql
    Using default tag: latest  # 如果不写tag 默认就是latest
    latest: Pulling from library/mysql
    feec22b5b798: Pull complete   # 分层下载docker image 的核心,联合文件系统
    3b33952322b1: Pull complete 
    8632ee03bb1c: Pull complete 
    636ccd115361: Pull complete 
    b07c8fac8eea: Pull complete 
    e44c54db9c14: Pull complete 
    cf9c45749101: Pull complete 
    9f2fa3febc47: Pull complete 
    44d5e1d3c311: Downloading  44.26MB/55.07MB
    bb3db2c5d8ec: Download complete 
    e0ead729abd9: Download complete 
    44d5e1d3c311: Downloading   44.8MB/55.07MB
    44d5e1d3c311: Pull complete 
    bb3db2c5d8ec: Pull complete 
    e0ead729abd9: Pull complete 
    Digest: sha256:25aace9734db96ae09c24c6a2eeb6db4720c41d493de352eb76007eddf437fbe  # 签名
    Status: Downloaded newer image for mysql:latest
    docker.io/library/mysql:latest  # 真实地址
    
    # 等价于
    docker pull mysql
    docker pull  docker.io/library/mysql:latest
    
    
    # pull指定版本  docker pull mysql:5.7
    lh@lh-pc:~$ docker pull mysql:5.7
    5.7: Pulling from library/mysql
    9a0b9cd2dfe6: Pull complete 
    c637408ee7df: Pull complete 
    4c517093c276: Pull complete 
    301cc7d68c2a: Pull complete 
    17ca9bf9231a: Pull complete 
    9ae101e5c786: Waiting 
    04baa409344e: Download complete 
    

    删除镜像

    删除单个镜像  docker rmi  -f 镜像id
    docker rmi  -f feb5d9fea6a5
    
    删除多个镜像
     docker rmi  -f 镜像id  镜像id  镜像id 
    
    删除所有镜像
    docker rmi  -f $(docker images -aq)
    

    容器命令

    我们有了镜像,才可以创建容器,下载一个centos镜像来测试学习

    docker pull centos
    

    新建容器并启动

    docker run [可选参数]  image
    
    # 参数说明
    --name="Name"   容器名字
    -d      后台方式运行
    -it     使用交互方式运行,进入容器查看内容
    -p      指定容器的端口   -p  8080:8080
            -p   ip:主机端口:容器端口
            -p  主机端口:容器端口(常用)
            -p 容器端口
            容器端口
    -P    随机指定端口
    
    
    #测试  启动并进入容器
    lh@lh-pc:~$ docker run -it centos /bin/bash
    [root@cd375b66a2fd /]# 
    
    # 从容器中退出到主机
    [root@cd375b66a2fd /]# exit
    exit
    lh@lh-pc:~$ 
    
    

    列出所有容器

    #docker ps
    列出当前正在运行的容器
    -a  列出正在运行的+历史运行的所有容器
    -n=1   显示最近创建的容器
    -q   只显示容器的编号
    
    
    lh@lh-pc:~$ docker ps  #列出当前正在运行的容器
    CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
    lh@lh-pc:~$ docker ps -a  #列出正在运行的+历史运行的所有容器
    CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS                          PORTS     NAMES
    cd375b66a2fd   centos         "/bin/bash"   5 minutes ago    Exited (0) About a minute ago             practical_jennings
    89a61014e7cc   centos         "/bin/bash"   54 minutes ago   Exited (255) 6 minutes ago                laughing_ishizaka
    cd81f29e33f2   centos         "/bin/bash"   55 minutes ago   Exited (0) 55 minutes ago                 competent_hypatia
    7d30f8f79402   feb5d9fea6a5   "/hello"      2 hours ago      Exited (0) 2 hours ago                    musing_wescoff
    f3d0ae4e9b9e   feb5d9fea6a5   "/hello"      2 hours ago      Exited (0) 2 hours ago                    amazing_mahavira
    
    
    lh@lh-pc:~$ docker ps -n=1
    CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                     PORTS     NAMES
    cd375b66a2fd   centos    "/bin/bash"   13 minutes ago   Exited (0) 9 minutes ago             practical_jennings
    
    
    lh@lh-pc:~$ docker ps -aq
    cd375b66a2fd
    89a61014e7cc
    cd81f29e33f2
    7d30f8f79402
    f3d0ae4e9b9e
    

    退出容器

    exit    直接容器停止并退出
    ctrl+p+q   容器不停止退出
    

    删除容器

    docker rm 容器id    #删除指定的容器,不能删除正在运行的容器,如果要强制删除rm -f
    docker rm -f $(docker ps -aq)   #删除所有的容器
    
    lh@lh-pc:~$ docker rm -f $(docker ps -aq)
    3040e5d57bd6
    3c6a0295e9f2
    cd375b66a2fd
    89a61014e7cc
    cd81f29e33f2
    7d30f8f79402
    f3d0ae4e9b9e
    lh@lh-pc:~$ docker ps -aq
    lh@lh-pc:~$
    

    启动和停止容器

    docker start 容器id    #启动容器
    docker restart 容器id   #重启容器
    docker  stop 容器id   #停止当前正在运行的容器
    docker kill 容器id   #强制停止当前容器
    

    常用的其他命令

    后台启动容器

    # docker run -d 镜像名
    docker run -d centos
    
    问题:docker ps发现centos容器停止了
    #常见的坑
    docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止。
    
    

    相关文章

      网友评论

          本文标题:Docker镜像的基本命令

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