• docker容器操作详解



     
    run 运行容器
    exec 可以在容器中执行命令或者进入容器
    ps 查看当前运行的容器
    rm 删除容器,默认删除不了正在运行的容器,-f
    inspect 查看容器的详细信息,也可以查看镜像的信息
    stats 查看容器的运行状态
    stop 停掉容器
    kill 强制杀掉容器
    start 启动容器
    logs 查看容器产生的日志信息
    rename 对容器改名
    top 查看容器的系统内存,磁盘使用信息
    pause 暂停容器
    unpause 开启容器
    pcommit 使用当前运行的容器制作镜像
    ls 查看当前运行的容器
    restart 重启容器
    top 查看容器的系统内存,磁盘使用信息
     
     
    例子1:启动容器
    前台运行容器
    -i: 交互模式
    -t: 分派终端
    [root@zxw99 ~]# docker run -ti busybox /bin/sh
    / #

     

    后台运行容器
    开启容器的服务
    -d: 守护进程
    [root@zxw99 ~]# docker run -d -p 80:80 nginx
    [root@zxw99 ~]# docker run -d -it busybox
    [root@zxw99 ~]# docker run --name nginx -d --rm nginx
    --name 指定容器名字
    -d 后台运行
    --rm 容器停掉之后自动删除

     

    在容器外执行命令
    [root@zxw99 ~]# docker run -ti busybox ls
    bin dev etc home proc root sys tmp usr var

     

    后台运行容器的时候执行命令
    [root@zxw99 ~]# docker exec -it 41d2872d3e6a ls
    bin dev home lib64 mnt proc run srv tmp var
    boot etc lib media opt root sbin sys usr

     

    bash和sh区别
    [root@zxw99 log]# docker exec -it ng bash
    root@1bde5ceb35f7:/# exit
    exit
    [root@zxw99 log]# docker exec -it ng sh
    # exit

     

    查看当前运行命令
    [root@zxw99 ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    2300907aaad9 nginx "nginx -g 'daemon of…" 19 seconds ago Up 18 seconds 80/tcp hungry_kilby
    查看所有已经运行的或退出的
    [root@zxw99 ~]# docker ps -a

     

    删除容器
    长:ID
    [root@zxw99 ~]# docker rm 191e23b29ad1
    短:ID
    [root@zxw99 ~]# docker rm 191e2
    容器名:
    [root@zxw99 ~]# docker rm kind_wozniak

     

    批量删除容器(只能删除以机退出的容器)
    [root@zxw99 ~]# docker rm $(docker ps -qa)
    9080694f3330
    c384fe8fad08
    940c80e93eb4
    -f:强制删除

     

    查看容器详细信息
    [root@zxw99 ~]# docker inspect busybox
    [root@zxw99 ~]# docker history nginx

     

    查看容器的运行状态
    [root@zxw99 ~]# docker stats c59650cb4435
    可改变里别的参数
    [root@zxw99 ~]# docker run -d -m 64M nginx

     

    停止容器服务
    stop停止
    ID停止
    [root@zxw99 ~]# docker stop 6cf30c091e8c
    名字停止
    [root@zxw99 ~]# docker stop nginx

     

    kill停止
    [root@zxw99 ~]# docker kill 1bde5ceb35f7
    stop和kill区别
    stop优雅退出(退出时候先发出-15,10秒之后-9)
    Kill -9立刻宗旨推出

     

    启动停止的容器
    [root@zxw99 ~]# docker start 1bde5ceb35f7
    1bde5ceb35f7

     

    查看容器日志
    [root@zxw99 ~]# docker logs 1bde5ceb35f7
    检查日志
    [root@zxw99 log]# docker logs 1bde5ceb35f7 -f

     

    运行容器改名
    [root@zxw99 log]# docker rename ecstatic_cerf busybox
    查看容器的系统内存,磁盘使用信息
    指定名字和ID
    [root@zxw99 log]# docker top ng
    [root@zxw99 log]# docker top ng

     

    暂停容器
    [root@zxw99 log]# docker pause ng
    ng
    [root@zxw99 log]# docker ps
    31 minutes (Paused) #暂停

     

    开启暂停
    [root@zxw99 log]# docker unpause c5965

     

    查看端口映射信息
    [root@zxw99 log]# docker port ng
    [root@zxw99 log]# docker port 1bde5ceb35f7

    进入容器的方法4种
    方法一:exec#在容器里别退出,容器本身不会退出
    方法二:attach# 退出时候容器退出
    方法三:ssh
    方法四:nsnter

     

     

    端口映射
    四类端口映射:
     镜像分:
    1.工具类的镜像
    交换模式dockers run -it
    2.服务类的镜像
    端口模式使用docker -d -p
    第一类:把容器的端口随机映射为物理机的一个端口
    第二类:把容器的端口映射为物理机特定的一个端口
    第三类:把容器的端口映射为物理机特定网卡上的特定端口
    第四类:把容器的端口映射为物理机特定网卡上的随机端口
     
    第一类:把容器的端口随机映射为物理机的一个端口
    使用的是大写的-P
    注意:
    使用-P选线。是把容器内所有expose的端口都映射为物理机的随机端口

     

    [root@zxw66 ~]# docker run -d -P httpd:v1
    56bf0d4a3da35cc85b454d76d31e33b4d6a44289e7e68a6dbbadc8bbf595a12c
    [root@zxw66 ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    56bf0d4a3da3 httpd:v1 "httpd-foreground" 18 seconds ago Up 17 seconds 0.0.0.0:32768->80/tcp intelligent_chebyshev
    8cfaa2ddb0cd httpd:v1 "httpd-foreground" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp youthful_nightingale
    [root@zxw66 ~]# docker port 56bf0d4a3da3
    80/tcp -> 0.0.0.0:32768

     

     

     

    第二类:把容器的端口映射为物理机特定的一个端口
    [root@zxw66 ~]# docker run -d -p 80:80 httpd:v1
    第一步端口为宿主机端口:第二个端口为容器服务端口
    [root@zxw66 ~]# docker run -d -p 22:80 httpd

     


    第三类:把容器的端口映射为物理机特定网卡上的特定端口
    [root@zxw66 ~]# docker run -d -p 192.168.126.128::80 httpd:v1
    13599a1c5d2d8431420fd726e97b81385447c884050721ea0db9ff1504c7911b

     


    第四类:把容器的端口映射为物理机特定网卡上的随机端口
    [root@zxw66 ~]# docker run -d -P httpd:v1
    0db80aefba1f349f5996ff29dcbeeb4f3528c49133bd36772a0c8b7239c862a0
    [root@zxw66 ~]# docker port 0db80aef
    80/tcp -> 0.0.0.0:32768

     

     

    复制一份到本地
    [root@zxw99 ~]# docker container cp f277b296c31c:/usr/local/apache2/logs .

    复制一份到容器
    [root@zxw99 ~]# docker container cp zxw f277b296c31c:/usr/local/apache2/

     

  • 相关阅读:
    【图像分割】:使用全卷积神经网络FCN,进行图像语义分割详解(附代码实现)
    阿里天池文本分类竞赛task2:初始数据分析
    阿里天池文本分类竞赛task1: 赛题理解
    threejs在建筑学上的应用:《Learning Threejs》
    threejs官网教程geometry有哪些?可以自定义自己的geometry吗?
    cesium如何让模型贴地?
    cesium添加OSM建筑物
    threejs与tubegeometry
    cesium建模&加载3dsmax模型
    cesium与三维管线
  • 原文地址:https://www.cnblogs.com/itzhao/p/11346729.html
Copyright © 2020-2023  润新知