zoukankan      html  css  js  c++  java
  • 03_Docker入门(上)之容器创建、容器使用、容器删除

    运维架构服务dockerdocker入门

    一、确保docker就绪

    查看docker程序是否存在,功能是否正常

    Docker可执行程序的info命令,该命令会返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动以及Docker的基本配置。

    二、构建第一个容器

    启动容器,用docker run命令创建容器

    docker run -i -t centos /bin/bash

    命令解释:告诉docker执行docker run命令,并指定了-i-t两个命令行参数,-i: 以交互模式运行容器,通常与 -t 同时使用;-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    命令中用的是centos镜像,首先docker会检查本地是否存在centos镜像,如果本地还没有该镜像的话,那么docker就会连接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地宿主机。

    之后,Docker在文件系统内部用这个镜像创建一个新容器。该容器拥有自己的网络、IP地址。以及一个用来和宿主机进行通信的桥接网络接口。最后,告诉Docker在新容器中要运行什么命令,本例中运行/bin/bash命令启动了一个Bash shell

    当容器创建完毕后,Docker就会执行容器中的/bin/bash命令,这时就会看到容器内的shell[root@4f6fdd17f86f /]#

    三、容器使用

    1、容器ID

     

    可以看到hostname就是容器的ID

    查看cat /etc/hosts

    Docker已在Hosts文件为该容器的IP地址添加了一条主机配置项。

    2、容器中安装软件

    容器中安装vim软件,可以在容器中做任何想做的事情,退出的时候输入exit,就可以返回到centos宿主机的命令行提示符。

    [root@4f6fdd17f86f /]# yum install vim

    3、退出容器

    docker ps –a查看当前系统中容器的列表

    默认情况下docker ps只能看到正在运行的容器,但是加上-a会列出所有的容器,包括正在运行的和已经停止的。

    docker ps –l  会列出最后一次运行的容器,包括正在运行的和已经停止的。

    从该命令的输出结果中我们可以看到容器的很多有用信息:ID、用于创建该容器的镜像、容器最后执行的命令、创建时间以及容器的退出状态(上面退出状态为0,因为容器是通过正常的exit命令退出)

    4、容器命名

    Docker会为我们创建的每一个容器自动生成一个随机的名称。如果想为容器指定一个名称,而不是使用自动生成的名称,则可以用—name标志来实现。

    [root@dst6 ~]# docker run --name bigdata_container -i -t centos /bin/bash

    [root@503b4ba12b02 /]# exit

    容器的名称必须是唯一的。如果我们试图创建两个名称相同的容器,则命令失败。如果要使用的容器名称已经存在,可以先用docker rm命令删除已有的同名容器后,再来创建新的容器。

    5、启动停止的容器

    可以用容器ID或者容器name来启动容器。

    docker start name/ID

    6、附着到容器上

    通过命令,重新附着到已经运行的容器上。

    docker attch name/ID

    如果推出shell,则容器也会停止。

    7、创建守护式容器

    除了创建交互式运行的容器,可以创建长期运行的容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。

    docker run --name bigdata_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 1;done"

    如上命令用了-d参数,因此Docker会将容器放到后台运行。

    在容器里运行了一个while循环,该循环会一直打印hello world,直到容器或进程停止运行。

    通过组合使用参数,可以发现docker run命令并没有像上一个容器一样将主机的控制台附着到新的shell会话上,而是仅仅返回了一个容器ID而已。可以用docker ps查看正在运行的容器,或者docker attch附着到容器上查看。

    可以用docker logs来获取容器的日志:

    Docker会输出最后几条日志项并返回。也可以用-f参数来监控Docker的日志,与tail –f命令非常类似。

    也可以跟踪容易日志的某一个片段,只需要在logs后使用tail命令即可。

    docker logs --tail 10 bigdata_daemon获取日志的最后10行内容。

    docker logs --tail 0 –f bigdata_daemon来跟踪某个容器的最新日志而不必读取整个日志文件。

    为了方便调试,可以使用-t标志来为每条日志减伤时间戳。

    8、查看容器内的进程

    docker top bigdata_daemon

    执行之后,可以看到容器内的所有进程、运行进程的用户及进程ID

    9、容器内部运行进程

    如上面的例子,如果我们运行了while循环之后,想打开一个新的shell交互式任务,可以用exec命令。

    docker exec -t -i bigdata_daemon /bin/bash

    10、停止容器

    docker stop name/ID

    docker stop bigdata_daemon

    11、自动重启容器

    如果由于某种错误而导致容器停止运行,还可以通过—restart标志,让Docker自动重新启动该容器。--restart标志会检查容器的退出代码,并据此来决定是否重启容器。默认Docker不会重启容器的。

    docker run --restart=always --name bigdata_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 1;done"

    除了always,还可以将标志设为on-failure,这样,只有当容器的退出代码为非0值的时候,才会自动重启。另外,on0failure还接受一个可选的从起次数参数。

    --restart=on-failure:5

    当容器退出代码为非0时,Docker会自动重启该容器,最多重启5次。

    12、深入容器

    docker ps可以获取容器的信息。用docker inspect来获取更多的容器信息。

    docker inspect bigdata_daemon

    docker inspect命令会对容器进行详细的检查,然后返回其配置信息,包括名称、命令、网络配置以及很多有用的数据。

    也可以用-f或者--format标志来选定查看结果。

    docker inspect --format='{{.State.Running}}' bigdata_daemon

    也可以同时制定多个容器,并显示每个容器的输出结果。

    13、删除容器

    docker rm命令来删除。

    docker rm bigdata_daemon

    运行中的容器是无法产出的,必须通过docker stop或者docker kill命令停止容器,才能将其删除。

    一次删除所有容器:docker rm ‘docker ps -a -q’

    -a标志代表列出所有的容器,-q标志则表示返回容器的ID而不会返回其他信息

     
  • 相关阅读:
    软件测试经理工作职责
    测试经理的年终总结
    从0到1,如何快速搭建人才梯队?
    Centos 的常用命令总结
    Docker的常用命令总结
    Jenkins Android项目编译配置(完整版)
    linux CentOS 权限问题修复(chmod 777 -R 或者chmod 755 -R问题修复)
    基于gitlab的项目管理流程
    js 防抖动、重复提交、频繁点击
    GPUImage移植总结
  • 原文地址:https://www.cnblogs.com/jarl/p/10056479.html
Copyright © 2011-2022 走看看