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下面
    
  • 相关阅读:
    BZOJ 1433 && Luogu P2055 [ZJOI2009]假期的宿舍 匈牙利算法
    BZOJ 1123 && Luogu P3469 [POI2008]BLO-Blockade 割点+乘法原理
    POJ3694 Network 边双缩点+LCA+并查集
    luogu P5142 区间方差 十分优美的线段树
    luogu P2709 小B的询问 最简单的莫队
    luogu P2731 骑马修栅栏 Riding the Fences
    TYVJ P2032 「Poetize9」升降梯上 spfa最短路
    51nod 1515 明辨是非 并查集+set维护相等与不等关系
    BZOJ 1260: [CQOI2007]涂色paint 区间DP
    luogu P4145 上帝造题的七分钟2 / 花神游历各国 维护区间和&&区间开根号
  • 原文地址:https://www.cnblogs.com/eternityz/p/12269787.html
Copyright © 2011-2022 走看看