美文网首页
Docker 入门教程(镜像与容器的使用) 二

Docker 入门教程(镜像与容器的使用) 二

作者: 404d67ac8c12 | 来源:发表于2019-10-01 21:08 被阅读0次

    Docker 镜像与容器的使用

    Docker 系统有两个程序:docker 服务端和 docker 客户端。其中 docker 服务端是一个服务进程,管理着所有的容器。docker 客户端则扮演着 docker 服务端的远程控制器,可以用来控制 docker 的服务端进程。大部分情况下 docker 服务端和客户端运行在一台机器上。

    一 搜索可用的docker镜像

    命令行的格式为:docker search 镜像名字,例如:

    $ docker search ubuntu
    NAME                             DESCRIPTION                                     STARS     OFFICIAL    AUTOMATED
    ubuntu                           Ubuntu is a Debian-based Linux operating sys…   9978      [OK]
    dorowu/ubuntu-desktop-lxde-vnc   Docker image to provide HTML5 VNC interface …   345                   [OK]
    rastasheep/ubuntu-sshd           Dockerized SSH service, built on top of offi…   231                   [OK]
    consol/ubuntu-xfce-vnc           Ubuntu container with "headless" VNC session…   187                   [OK]
    ubuntu-upstart                   Upstart is an event-based replacement for th…   99        [OK]
    ansible/ubuntu14.04-ansible      Ubuntu 14.04 LTS with ansible                   97                    [OK]
    neurodebian                      NeuroDebian provides neuroscience research s…   59        [OK]
    ..........
    
    二 下载容器镜像

    命令行的格式为:docker pull 镜像名字,例如:

    # 下载 latest 版本的镜像
    $ docker pull ubuntu
    
    # 下载指定版本号的镜像
    $ docker pull ubuntu:18.04
    
    三 运行容器

    命令行的格式为:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    1、 在容器中运行 hello world

    $ docker run ubuntu:18.04 echo "hello world"
    hello world
    

    2、更新容器中的系统

    $ docker run ubuntu:18.04 apt update
    

    备注:apt update 命令执行完毕之后,容器就会停止,但对容器的改动不会丢失。

    四 Docker 镜像、容器的查看与删除

    1、查询镜像 docker images ,可以看到所有已经存在的镜像的 ID (IMAGE ID)。

    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu              18.04               a2a15febcdf3        5 weeks ago         64.2MB
    hello-world         latest              fce289e99eb9        8 months ago        1.84kB
    

    2、查询容器:docker ps -a,可以看到所有容器的 ID (CONTAINER ID)。

    $ docker ps -a
    CONTAINER ID   IMAGE               COMMAND        CREATED      STATUS                   PORTS     NAMES
    ce8a07737e4f   testnet:18.04       "/bin/bash"    5 days ago   Exited (0) 5 days ago              test1
    df329130a249   ubuntu_base:18.04   "/bin/bash"    2 weeks ago  Exited (0) 5 days ago              test2
    39d2edba3611   ubuntu:18.04        "/bin/bash"    2 weeks ago  Exited (0) 2 weeks ago             musing_lalande
    

    3、先删除容器:docker rm 容器ID

    $ docker rm ce8a07737e4f
    

    4、再删除镜像:docker rmi 镜像ID

    $ docker rmi 9764aa177ecf
    

    注意:

    • 删除前需要保证容器是停止的 docker stop test1
    • 顺序是需要先删除容器,再删除镜像
    • 需要注意删除镜像和容器的命令不一样。
    $ docker rm CONTAINER_ID   删除容器
    $ docker rmi IMAGE_ID      删除镜像
    
    五 保存对容器的修改

    当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。docker中保存状态的过程称之为 committing,它保存新旧状态之间的区别,从而产生一个新的版本。
    命令行的格式为:docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

    # 1、使用 docker ps -l 命令获得安装完ping命令之后容器的id
    $ docker ps -l
    CONTAINER ID   IMAGE          COMMAND        CREATED        STATUS                     PORTS               NAMES
    e5d13254f0fb   ubuntu:18.04   "apt update"   3 minutes ago  Exited (0) 3 minutes ago                       trusting_meninsky
    
    # 2、使用 commit 提交更改
    $ docker commit e5d13254f0fb  ubuntu-update:18.04
    
    # 3、查看新提交的镜像
    $ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    ubuntu-update       18.04               3f68ea2d04da        6 seconds ago       91.4MB
    
    六 后台运行容器并访问

    1、后台运行容器
    命令行的格式为:docker run -itd IMAGE [COMMAND] [ARG...]
    参数说明:

    • -i : 让容器的标准输入保持打开。
    • -t : 分配一个伪终端并绑定到容器的标准输入上。
    • -d : 让容器在后台运行。

    Docker 中系统镜像的缺省命令是 bash,如果不加 -it bash 命令执行后会自动会退出。这是因为如果没有衔接输入流,本身就会马上结束。加 -it 后 docker 命令会为容器分配一个伪终端,并接管其 stdin/stdout 支持交互操作,这时候 bash 命令不会自动退出。

    $ docker run -itd ubuntu:18.04 /bin/bash
    
    $ docker ps -l
    docker ps -l
    CONTAINER ID   IMAGE          COMMAND        CREATED        STATUS         PORTS     NAMES
    77d851adc856   ubuntu:18.04   "/bin/bash"    8 minutes ago  Up 8 minutes             suspicious_golick
    

    2、使用 exec 命令访问容器
    无需任何配置访问容器最简单的两种方式:

    # 容器外执行命令:`docker exec CONTAINER_ID Command`
    $ docker exec 77d851adc856 ls -l /
    
    # 容器内执行命令:`docker exec -it CONTAINER_ID /bin/bash
    $ docker exec -it 77d851adc856 /bin/bash
    
    # 退出容器:直接使用 exit 命令,退出后容器仍然在后台继续执行。
    
    参考

    ubuntu 安装 docker 以及 docker 入门教程

    相关文章

      网友评论

          本文标题:Docker 入门教程(镜像与容器的使用) 二

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