zoukankan      html  css  js  c++  java
  • Docker 容器管理

      容器是镜像的运行时实例。正如从虚拟机模板上启动 VM 一样,用户也同样可以从单个镜像上启动一个或多个容器。

    root@ryj-dev10:/home/wuh151# docker container --help
    
    Usage:	docker container COMMAND
    
    Manage containers
    
    Commands:
      attach      Attach local standard input, output, and error streams to a running container
      commit      Create a new image from a container's changes
      cp          Copy files/folders between a container and the local filesystem
      create      Create a new container
      diff        Inspect changes to files or directories on a container's filesystem
      exec        Run a command in a running container
      export      Export a container's filesystem as a tar archive
      inspect     Display detailed information on one or more containers
      kill        Kill one or more running containers
      logs        Fetch the logs of a container
      ls          List containers
      pause       Pause all processes within one or more containers
      port        List port mappings or a specific mapping for the container
      prune       Remove all stopped containers
      rename      Rename a container
      restart     Restart one or more containers
      rm          Remove one or more containers
      run         Run a command in a new container
      start       Start one or more stopped containers
      stats       Display a live stream of container(s) resource usage statistics
      stop        Stop one or more running containers
      top         Display the running processes of a container
      unpause     Unpause all processes within one or more containers
      update      Update configuration of one or more containers
      wait        Block until one or more containers stop, then print their exit codes
    
    Run 'docker container COMMAND --help' for more information on a command.

    一、容器生命周期

    #展示本地所有镜像
    
    root@ryj-dev10:/home/wuh151# docker image ls  
    REPOSITORY                        TAG          IMAGE ID           CREATED        SIZE
    mysql                             latest       ab2f358b8612       2 weeks ago    545MB
    harbor.lingda.com/uupm/uupm-api   dev-nacos    e41a5fe13d65       3 weeks ago    180MB
    
    
    #通过镜像生成容器 docker container run [OPTIONS] IMAGE [COMMAND] [ARG...] 
    
    root@ryj-dev10:/home/wuh151# docker container run -d -p=11001:11001 --name=uupm-api harbor.lingda.com/uupm/uupm-api:dev-nacos
    f6ac4d7ff65dacc28e947c782cb568cae99b0a50f4a72dbc7537bff867779813
    
     
    
    #展示所有的容器-运行中
    
    root@ryj-dev10:/home/wuh151# docker container ps
    CONTAINER ID    IMAGE                           COMMAND            CREATED        STATUS           PORTS                NAMES
    f6ac4d7ff65d    harbor.lingda.com/uupm/uupm-api:dev-nacos     "/bin/sh -c 'java ${…"    20 seconds ago    Up 17 seconds       0.0.0.0:11001->11001/tcp     uupm-api
    
     
    
    #停止容器
    root@ryj-dev10:/home/wuh151# docker container stop f6ac4d7ff65d
    f6ac4d7ff65d
    
    
    #展示所有的容器
    root@ryj-dev10:/home/wuh151# docker container ps -a
    CONTAINER ID    IMAGE                            COMMAND            CREATED        STATUS                    PORTS        NAMES
    f6ac4d7ff65d    harbor.lingda.com/uupm/uupm-api:dev-nacos     "/bin/sh -c 'java ${…"   58 seconds ago    Exited (137) 12 seconds ago                      uupm-api
    
     
    
    #启动容器
    
    root@ryj-dev10:/home/wuh151# docker container start f6ac4d7ff65d
    f6ac4d7ff65d
    
    
    #展示容器中运行的进程信息
    
    root@ryj-dev10:/home/wuh151# docker container top f6ac4d7ff65d
    UID      PID    PPID    C    STIME    TTY    TIME      CMD
    ubuntu     499535   499515   0    18:39    ?    00:00:00    /bin/sh -c java ${javaOpts} -jar *.jar --logging.config=logback.xml
    ubuntu     499585   499535   14   18:39    ?    00:02:22    java -jar uupm-api.jar --logging.config=logback.xml
    
     
    
    #删除容器
    root@ryj-dev10:/home/wuh151# docker container rm f6ac4d7ff65d
    Error response from daemon: You cannot remove a running container f6ac4d7ff65dacc28e947c782cb568cae99b0a50f4a72dbc7537bff867779813. Stop the container before attempting removal or force remove
    
     
    
    #强制杀死容器
    root@ryj-dev10:/home/wuh151# docker container kill f6ac4d7ff65d
    f6ac4d7ff65d

    二、进入容器内部

    docker attach:使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。

    docker exec:在运行的容器中执行命令,命令执行后会进入容器的默认工作目录,如果在Dockerfile中指定了工作目录,则会进入Dokcerfile指定的目录,如果命令中指定了工作目录-w则会进入该目录。

    root@ryj-dev10:/home/wuh151# docker container exec --help
    
    Usage:	docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
    
    Run a command in a running container
    
    Options:
      -d, --detach               Detached mode: run command in the background
          --detach-keys string   Override the key sequence for detaching a container
      -e, --env list             Set environment variables
      -i, --interactive          Keep STDIN open even if not attached
          --privileged           Give extended privileges to the command
      -t, --tty                  Allocate a pseudo-TTY
      -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
      -w, --workdir string       Working directory inside the container
    #docker container exec 后接sh,是为了进入容器的终端,可以执行一些如ls pwd等一些简单的shell命令。不同的镜像不一样
    root@ryj-dev10:/home/wuh151# docker container exec -it f6ac4d7ff65d  sh
    /opt $ ls -l
    total 70716
    -rw-r--r--    1 root     root          4474 Dec  2 08:51 application.properties
    -rw-r--r--    1 root     root          1448 Dec  2 08:51 bootstrap.properties
    -rw-r--r--    1 root     root          5163 Dec  2 08:53 logback.xml
    drwxr-xr-x    2 genius   genius        4096 Dec 26 10:38 logs
    -rw-r--r--    1 root     root      72381258 Dec  2 08:52 uupm-api.jar
  • 相关阅读:
    飞思卡尔IMX6处理器的GPIO配置方式
    批处理清除VisualStudio解决方案文件夹
    总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
    详解Linux2.6内核中基于platform机制的驱动模型 (经典)
    [驱动注册]platform_driver_register()与platform_device_register()
    机器人系统常用仿真软件介绍效果与评价指标
    WINCE的批处理
    项目开发中的人月及如何计算
    常用的六个富文本编辑器
    如何获取公众号里面的歌曲
  • 原文地址:https://www.cnblogs.com/ryjJava/p/14182306.html
Copyright © 2011-2022 走看看