美文网首页
第四章:操作Docker容器

第四章:操作Docker容器

作者: xrichardyan | 来源:发表于2017-08-03 15:23 被阅读0次

    4.1创建容器

    1.新建容器

    $ docker create -it ubuntu:latest    # 创建一个ubuntu:latest容器
    $ docker ps -a    # 查看所有容器
    

    2.启动容器

    $ docker start dd    # 启动容器  dd为容器的ID简写(同下面)
    $ docker ps    # 查看运行中的容器
    

    3.新建并启动容器

    $ docker run ubuntu /bin/echo 'Hello World!'    # run = create +start
    

    4.守护态运行(后台运行)

    添加 -d 参数来实现

    $ docker run -d ubuntu /bin/sh -c "while true; do echo hello world;  sleep 1; done"
    

    此时,要获取容器的输出信息,可以使用:

    $ docker logs dd    # 获取dd进程的日志
    

    4.2终止容器

    $ docker stop dd    # 终止dd容器
    

    查看所有容器的ID

    $ docker ps -pa    # 查看所有容器的ID
    

    启动&重新启动

    $ docker start dd    # 将一个终止的容器重新启动
    
    $ docker restart dd    # 将一个运行态的容器先终止,然后重新启动它
    

    4.3进入容器

    1.attach命令

    $ docker run -itd ubuntu    # 启动守护态进程
    7417a1e8c07ffa3f69d335a837390578c420862576d752144901a4cf89f5683b
    $ docker ps    # 查看进程中的容器
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
    7417a1e8c07f        ubuntu              "/bin/bash"         About a minute ago   Up About a minute                       sad_leavitt
    $ docker attach 7417a1e8c07f    # 进入容器 此时可与容器交互
    root@7417a1e8c07f:/# 
    

    2.exec命令

    例如进入上面创建的容器

    $ docker exec -it 7417a1e8c07f /bin/bash
    root@7417a1e8c07f:/# 
    

    4.4删除容器

    $ docker rm dd    # dd 为容器ID简写
    

    默认情况下,docker rm命令只能删除处于终止状态或退出状态的容器,不能删除处于运行状态的容器。
    如果要直接删除一个运行中的容器,可以添加 -f 参数强制删除。(Docker会先发送SIGKILL信号给容器,终止其中的应用,之后强制删除,如下所示:

    $ docker run -itd ubuntu    # 先开始一个守护态进程
    90991da80cbed20c8bf23c2ba35d69053581708947c6a514bd18917ac8d23b66
    $ docker rm 90991da80cbe    # 如果直接删除会出现报错
    Error response from daemon: You cannot remove a running container 90991da80cbed20c8bf23c2ba35d69053581708947c6a514bd18917ac8d23b66. Stop the container before attempting removal or force remove
    $ docker rm -f 90991da80cbe    #添加-f参数强制删除
    90991da80cbe
    

    4.5导入和导出容器

    1.导出容器

    $ docker ps -a    # 查看所有容器
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                   PORTS               NAMES
    e697625ef19c        ubuntu              "/bin/bash"         2 hours ago         Up 2 hours                                   reverent_jones
    7417a1e8c07f        ubuntu              "/bin/bash"         2 hours ago         Exited (0) 2 hours ago                       sad_leavitt
    $ sudo docker export -o test_end.tar 741    # 通过 -o 选项来指定导出的tar文件名
    $ ls
    test_end.tar 
    $ docker export e69 >test_run.tar    #另一种方法
    $ ls
    test_run.tar    test_end.tar
    

    之后,可将导出的tar文件传输到其他机器上,然后再通过导入命令导入到系统中,从而实现容器的迁移。

    2.导入容器

    $ docker import test_run.tar  test/ubuntu:v1.0    # 导入test_run.tar并添加标签
    sha256:d1cea21eca71b8e287289cf78d0afbe0a7378b1704b03b5b9bcdd4d10470ec21
    $ docker images    # 查看镜像
    REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
    test/ubuntu          v1.0                d1cea21eca71        8 seconds ago       97.8MB
    

    docker import 类似于 docker load

    相关文章

      网友评论

          本文标题:第四章:操作Docker容器

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