zoukankan      html  css  js  c++  java
  • docker容器命令

    容器命令

    新建并启动容器

    docker run [options] image [command] [args]

    OPTIONS说明(常用),有的是一个减号,有的是两个减号
    
    --name="容器新名字": 为容器指定一个名称
    -d: 后台运行容器,并返回容器ID,也即启动守护式容器
    -i: 以交互模式运行容器,通常与-t同时使用
    -t: 为容器重新分配一个伪输入终端,通常与-i同时使用
    -P: 随机端口映射
    -p: 指定端口映射,有以下四种格式
        ip:hostPorst:containerPort
        ip::containerPort
        hostPort:containerPort
        containerPort
    

    示例

    启动交互式容器
    docker run -it --name 'mycentos'
    

    列出当前所有正在运行的容器

    docker ps [options]

    OPTIONS说明(常用):
    
    -a:列出当前所有正在运行的容器+历史上运行过的
    -l:显示最近创建的容器
    -n:显示最近n个创建的容器
    -q:静默模式,只显示容器编号
    --no-trunc:不截断输出
    

    退出容器

    • exit 容器停止退出(容器停止了,再次进入,需要再次run)
    • ctrl+P+Q 容器不停止退出(容器没停止,还可以再次进入,不用再次run)

    启动容器

    docker start 容器ID或容器名

    适用范围

    已经新建过,运行了,
    停止之后,使用docker ps -l
    或者使用docker ps -a
    查询出停止的容器
    然后使用查询出来的容器ID或者容器名字
    进行重新启动
    

    重启容器

    docker restart 容器ID或者容器名
    重启后会返回容器ID

    适用范围

    已经新建过,正在运行,
    使用docker ps -l
    或者使用docker ps -a
    查询出运行的容器
    然后使用查询出来的容器ID或者容器名字
    进行重新启动
    

    停止容器

    docker stop 容器ID或者容器名
    停止后会返回容器ID

    使用场景

    相当于电脑关机流程
    

    强制停止容器

    docker kill 容器ID或者容器名
    停止后会返回容器ID

    使用场景

    相当于电脑,直接拔电源
    

    删除已停止的容器

    删除单个容器

    docker rm 容器ID 删除单个容器
    docker rm -f 容器ID 强制删除单个容器

    删除多个容器

    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm

    启动守护式容器

    docker run -d 容器名

    详解

    不会产生交互,
    不会切换到新的容器
    

    问题

    docker ps -a进行查看,会发现容器已经退出
    很重要的要说明的一嗲:docker容器后台运行,就必须哟一个前台进程
    容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就会自动退出
    
    这个是docker的机制问题,比如你的web容器,
    我们一nginx为例,正常情况下,我们配置启动服务
    只需要启动相应的service即可.
    例如service nginx start
    但是,这样做,nginx为后台进程模式运行,
    就导致docker前台没有运行的应用
    这样的容器后台启动后,会立即自杀因为他觉得没事可做了.
    所以最佳的解决方案是
    将你要运行的程序以前台进程的形式运行!!!
    

    如何正确的启动

    docker run -d centos /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"

    意思

    启动守护式容器centos
    并且在前台每隔两秒打印一次hello zzyy
    这样前台有进程,就不会导致自杀
    

    查看容器日志

    docker logs -f -t --tail 容器ID

    参数详解

    -t 加入时间戳
    -f 跟随最新的日志打印
    --tail 数字 显示最后多少条
    

    查看容器内运行的进程

    docker top 容器ID

    使用场景

    已经运行了一个容器
    此时使用这个命令查看在容器运行的进程
    

    查看容器内部细节

    docker inspect 容器ID

    进入正在运行的容易并以命令行交互

    docker attach 容器ID

    使用场景

    直接进入容器启动命令的终端,不会启动新的进程
    会直接切换到容器里面
    

    docker exec -t 容器ID ls -l /tmp

    使用场景

    不进入容器里面,
    但是能获取到命令 ls -l /tmp的内容
    
    

    docker exec -t 容器ID /bin/bash

    使用场景

    会直接切换到容器里面
    

    从容器内拷贝文件到主机上

    docker cp 容器ID:容器内路径 目的主机路径

    使用

    docker cp 10b9ajsdk:/tmp/yum.log /root
    
    将容器10b9ajsdk路径tmp下的yum.log拷贝到主机的root下面
    
  • 相关阅读:
    HDU1879 kruscal 继续畅通工程
    poj1094 拓扑 Sorting It All Out
    (转)搞ACM的你伤不起
    (转)女生应该找一个玩ACM的男生
    poj3259 bellman——ford Wormholes解绝负权问题
    poj2253 最短路 floyd Frogger
    Leetcode 42. Trapping Rain Water
    Leetcode 41. First Missing Positive
    Leetcode 4. Median of Two Sorted Arrays(二分)
    Codeforces:Good Bye 2018(题解)
  • 原文地址:https://www.cnblogs.com/eternityz/p/12269787.html
Copyright © 2011-2022 走看看