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

     获取镜像:

    docker pull ubuntu

    用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

    $ docker run -it ubuntu /bin/bash

    各个参数解析:

    • -t: 在新容器内指定一个伪终端或终端。

    • -i: 允许你对容器内的标准输入 (STDIN) 进行交互

    • ubuntu: ubuntu 镜像。
    • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
    runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world" 
    Hello world
    • run: 运行一个容器。

    • ubuntu:15.10 指定要运行的镜像,先从本地主机上查找镜像是否存在,如果不存在,就会从镜像仓库 Docker Hub 下载公共镜像。

    • /bin/echo "Hello world": 在启动的容器里执行的命令

    要退出终端,直接输入 exit:

    root@ed09e4490c57:/# exit

    启动容器(后台模式)

    使用以下命令创建一个以进程方式运行的容器

    runoob@runoob:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    后台运行

    在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

    $ docker run -itd --name ubuntu-test ubuntu /bin/bash 

    注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec(下面会介绍到)。

    docker attach  #连接到正在运行中的容器
    如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;
    如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。
    attach带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。
    docker  attach  37d61466c69e  \注意:如果在stdin中exit,会导致容器的停止。
     
    docker  exec  -it  37d61466c69e  ps -ef  \远程执行容器中的命令
    docker exec -it 37d61466c69e /bin/bash \登录容器,执行exit不会导致容器停止。

     查看容器详细信息:docker inspect 013f517d2c85

     显示容器的详细地址:

    sudo docker inspect 013f517d2c85 |grep IPAddres|cut -d '"' -f 4

    [root@localhost ~]# docker ps
    CONTAINER ID  IMAGE       COMMAND            CREATED       STATUS     PORTS     NAMES
    d53a0e426a7f  ubuntu:latest  "/bin/sh -c 'while..."   8 minutes ago   Up 8 minutes        pensive_newton
    

    输出详情介绍:

    CONTAINER ID: 容器 ID。

    IMAGE: 使用的镜像。

    COMMAND: 启动容器时运行的命令。

    CREATED: 容器的创建时间。

    STATUS: 容器状态。

    状态有7种:

    • created(已创建)
    • restarting(重启中)
    • running(运行中)
    • removing(迁移中)
    • paused(暂停)
    • exited(停止)
    • dead(死亡)

    PORTS: 容器的端口信息和使用的连接类型(tcpudp)。

    NAMES: 自动分配的容器名称。

    如果是应用容器,sshd服务不是必须的,如果是系统容器,sshd服务需要开启。在容器中启用sshd服务操作,进入容器后:

    [root@86999be36110 /]#yum install net-tools
    [root@86999be36110 /]# yum install openssh-server 
    [root@86999be36110 /]# mkdir -p /var/run/sshd  
    [root@86999be36110 /]# /usr/sbin/sshd -D 
    [root@86999be36110 /]# /usr/sbin/sshd -D &


    取消pam登录限制,PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。

    [root@86999be36110 /]# sed -ri 's/session    required     pam_loginuid.so/#session    required     pam_loginuid.so/g' /etc/pam.d/sshd 
    [root@86999be36110 ~]# cd /root  
    [root@86999be36110 ~]# ssh-keygen -t rsa 
    [root@86999be36110 ~]# vi /root/run-sshd.sh
    #!/bin/bash
    /usr/sbin/sshd -D
    [root@86999be36110 ~]# exit
    或 
    $ docker stop 86999be36110
  • 相关阅读:
    zlib编译不过(Error A2070)解决方法(转)
    error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CStaticLink::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint) (转)
    MFC does not support WINVER less than 0x0501 解决方案(转)
    【程序打包工具 Inno Setup】转
    【Visual Studio】简单内存泄漏检测方法 解决 Detected memory leaks! 问题(转)
    各种版本QT下载地址与VS2013+QT5.3.1环境搭建过程(转)
    【Windows Message】MFC 通过F5,刷新桌面
    [bzoj]3343 教主的魔法
    NOIP2012 国王游戏
    NOIP模拟赛 路面修整
  • 原文地址:https://www.cnblogs.com/linuxws/p/6872175.html
Copyright © 2011-2022 走看看