zoukankan      html  css  js  c++  java
  • Docker系列三:Docker容器管理

    Docker容器管理

    1. 单一容器管理

    1) 容器的启动

    $ docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis:/var/lib/redis sameersbn/redis:latest
    

    指令解释如下:

    • run: 启动一个容器;
    • --name: 指定容器的名字;
    • --volume : 指定容器使用文件夹(具体后面会讲到)

    2) 容器的标识符

    $ docker ps -a 
    
    CONTAINER ID        IMAGE                                 COMMAND                  CREATED             STATUS                           PORTS               NAMES
    92cbb6ddb276        cptactionhank/atlassian-jira:latest   "/docker-entrypoin..."   21 hours ago        Exited (137) About an hour ago                       determined_wright
    d07ead10f5c1        sameersbn/redmine                     "/sbin/entrypoint...."   22 hours ago        Exited (0) 21 hours ago                              redmine
    9b06a948213f        sameersbn/postgresql                  "/sbin/entrypoint.sh"    22 hours ago        Exited (0) 21 hours ago                              postgresql-redmine
    52c9c9129437        sameersbn/gitlab                      "/sbin/entrypoint...."   2 days ago          Exited (137) 2 days ago                              gitlab
    4b302844ad58        sameersbn/redis                       "/sbin/entrypoint.sh"    2 days ago          Exited (0) 2 days ago                                gitlab-redis
    ba172ce6a31b        sameersbn/postgresql                  "/sbin/entrypoint.sh"    2 days ago          Exited (137) 2 days ago                              gitlab-postgresql
    de08f753bc6b        wordpress                             "docker-entrypoint..."   2 days ago          Exited (0) 2 days ago                                MyWordPress
    
    

    每个容器被创建后,都会给其分配一个唯一标识CONTAINER ID(为128位,但一般显示为16位),通过docker ps能查到其16位简略形式。

    以下指令均可以查看某个容器相关信息:

    docker ps -a | grep 容器id/容器名
    docker stop 容器id/容器名
    docker start 容器id/容器名
    

    3) 查看容器信息

    docker inspect 容器id/容器名 //查看某容器详细信息
    docker inspect -f {{.State.Status}} 容器id/容器名 //通过-f 使用Golang的模板提取容器的运行状态
    docker inspect -f {{.NetworkSetting.IPAddress}}  容器id/容器名 //提取容器的IP地址
    docker logs 容器id/容器名 //查看容器日志
    docker logs -f  容器id/容器名 //实时打印容器日志
    docker stats   容器id/容器名  //查看容器所占用的系统资源
    

    4) 容器内部命令

    docker exec+容器名+容器内执行的命令
    docker exec 容器名/容器id  ps aux //查看容器内启动了哪些进程
    docker exec -it 容器id/容器名  /bin/bash  //加上-it可以在容器内执行多个命令
    

    2. 多容器管理

    当一个服务由多个容器组成时,需要启动多个容器,容器的通信通过--link进行关联

    docker run --name gitlab-postgresql -d 
        --env 'DB_NAME=gitlabhq_production' 
        --env 'DB_USER=gitlab' --env 'DB_PASS=password' 
        --env 'DB_EXTENSION=pg_trgm' 
        --volume /srv/docker/gitlab/postgresql:/var/lib/postgresql 
        sameersbn/postgresql:9.6-2
    
    docker run --name gitlab-redis -d 
        --volume /srv/docker/gitlab/redis:/var/lib/redis 
        sameersbn/redis:latest
    
    docker run --name gitlab -d 
        --link gitlab-postgresql:postgresql --link gitlab-redis:redisio 
        --publish 10022:22 --publish 10080:80 
        --env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' 
        --env 'GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string' 
        --env 'GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string' 
        --env 'GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string' 
        --volume /srv/docker/gitlab/gitlab:/home/git/data 
        sameersbn/gitlab:9.4.1
    

    但是有个问题是多个容器的启动和停止是需要按依赖的顺序有先后顺序的,不然会出现问题。

    1) Docker Compose

    Docker提供了一个容器启动管理工具能交一个服务内相互以来的容器进行YAML格式的文件配置,通过简单的命令进行启动和停止

    安装Docker Compose的安装方式:

    sudo curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    sudo chmod +x /usr/loacl/bin/docker-compose
    

    创建docker-compose.yml文件:

    wordpress:
        image: wordpress
        links:
            - db:mysql
        ports:
            - 8080:80
    db:
        image: mariadb
        environment:
            MYSQL_ROOT_PASSWORD: example    
    

    docker-compose相关命令如下:

    docker-compose up //新建服务,会默认寻找当前目当下的
    docker-compose up -d //后台启动容器组docker-compose.yml/.yaml文件
    docker-compose up -f  xxx/docker-compose.yaml up新建服务,指定docker-compose.yml/.yaml文件
    docker-compose start //启动服务容器组
    docker-compose stop  //停止容器组
    docker-compose [-f yml文件] ps//查看服务里的容器组状态
    docker-compose [-f yml文件] start //容器组启动
    docker-compose [-f yml文件] stop //容器组组停止
    docker-compose [-f yml文件] donw //容器组删除
    
  • 相关阅读:
    EF-入门操作
    Razor 页面解说
    Razor_02 第一个应用程序+Model+EF 添加
    Razor_01 第一个应用程序
    LazyCoder修仙之路
    .NET高级特性-Emit(2.2)属性
    .NET高级特性-Emit(2.1)字段
    .NET高级特性-Emit(2)类的定义
    .NET高级特性-Emit(1)
    asp.net core高级应用:TagHelper+Form
  • 原文地址:https://www.cnblogs.com/Terry-Wu/p/7256866.html
Copyright © 2011-2022 走看看