美文网首页
Docker 操作指引

Docker 操作指引

作者: Ailily | 来源:发表于2017-10-12 10:23 被阅读19次
    1. 获取镜像
      sudo docker pull NAME[:TAG]
      命令示例
      sudo docker pull centos:latest

    2. 启动Container盒子
      sudo docker run [OPTION] IMAGE [COMMAND] [ARG..]
      命令示例
      sudo docker run -t -i centos /bin/bash

    3. 查看镜像列表,l列出本地所有image
      sudo docker images [OPTION] [NAME]
      命令示例
      sudo docker images

    4. 查看所有容器列表,列出本地所有Container
      sudo docker ps [OPTION] [NAME]
      命令示例
      查看所有运行中或停止运行的容器
      sudo docker ps -a

    5. 删除本地已下载的镜像
      sudo docker rmi [IMAGE] [IMAGE..]
      命令示例
      sudo docker rmi centos:latest

    6. 移除一个或多个容器实例
      sudo docker rm [OPTION] [CONTAINER] [CONTAINER..]
      命令示例
      移除所有未运行的容器
      sudo docker rm sudo docker ps -aq

    7. 停止一个正在运行的容器
      sudo docker kill [OPTION] [CONTAINER] [CONTAINER..]
      命令示例
      sudo docker kill 062e

    8. 停止一个正在运行的容器
      sudo docker kill [OPTION] [CONTAINER] [CONTAINER..]
      命令示例
      sudo docker kill 062e

    9. 重启一个正在运行的容器
      sudo docker restart [OPTION] [CONTAINER] [CONTAINER..]
      命令示例
      sudo docker restart 062e

    10. 启动一个已经停止的容器
      sudo docker start [OPTION] [CONTAINER] [CONTAINER..]
      命令示例
      sudo docker start 062e

    小示例

    下载centOs镜像
    sudo docker pull centos:latest

    让centOs镜像启动一个Container ,让控制台输出一行hello world
    sudo docker run centos /bin/echo "hello world"

    每秒打印一个 “hello world”
    sudo docker run -i -t centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
    -i 表示同步Container的stdin , -t 表示分配一个伪终端

    sudo docker ps
    返回以下

    CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS               NAMES
    456a3684b5b9        centos                        "/bin/sh -c 'while..."   About an hour ago   Up 43 seconds                           peaceful_wilson
    8de2a4b35529        centos                        "/bin/bash"              About an hour ago   Up 9 minutes                            tender_hamilton
    73fdeccb369b        gitlab/gitlab-runner:latest   "/usr/bin/dumb-ini..."   2 hours ago         Up About an hour                        gitlab-runner
    

    文件卷标加载

    将本机的/etc目录挂载到Container的/opt/etc下面,并且打印Container的/opt/etc目录
    docker run --rm=true -i -t --name=ls-volume -v /etc/:/opt/etc/ centos ls /opt/etc

    参数-v 后面冒号左侧部分是本地主机路径,冒号右侧部分是对应Container的路径, --rm=true 表示这个Container运行结束后自动删除

    将多个Container盒子连接起来

    启动redis镜像的Container,开始redis-server持久化服务,
    sudo docker run --name redis-server -d redis redis-server --appendonly yes

    然后启动一个Redis镜像Container作为客户端,连接刚才启动的redis-server
    sudo docker run --rm=true -it --link redis-server:redis redis /bin/bash
    执行完命令就进入了Container内部的bash,可以直接执行一些Linux命令
    root@4ebc21daee94:/data# env 打印环境变量

    REDIS_ENV_REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.2.tar.gz
    REDIS_PORT_6379_TCP_PROTO=tcp
    HOSTNAME=4ebc21daee94
    REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.2.tar.gz
    TERM=xterm
    REDIS_NAME=/focused_booth/redis
    REDIS_PORT_6379_TCP_ADDR=172.17.0.4
    REDIS_ENV_REDIS_DOWNLOAD_SHA=b1a0915dbc91b979d06df1977fe594c3fa9b189f1f3d38743a2948c9f7634813
    REDIS_PORT_6379_TCP_PORT=6379
    REDIS_ENV_GOSU_VERSION=1.10
    REDIS_DOWNLOAD_SHA=b1a0915dbc91b979d06df1977fe594c3fa9b189f1f3d38743a2948c9f7634813
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/data
    REDIS_PORT_6379_TCP=tcp://172.17.0.4:6379
    SHLVL=1
    HOME=/root
    REDIS_PORT=tcp://172.17.0.4:6379
    REDIS_VERSION=4.0.2
    REDIS_ENV_REDIS_VERSION=4.0.2
    GOSU_VERSION=1.10
    _=/usr/bin/env
    
    redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"
    

    参考资料
    书籍:《Node.js实战 第二季》
    Docker —— 从入门到实践

    相关文章

      网友评论

          本文标题:Docker 操作指引

          本文链接:https://www.haomeiwen.com/subject/bmsnyxtx.html