Docker容器管理

容器创建

   createCreate a new container

   runRun a command in a new container运行一个新容器

容器删除

   rmRemove one or more containers

容器信息

   psList containers查看正在运行的容器-a 为查看所有的容器,包括已经停止的。

   inspectReturn low-level information on Docker objects查看容器基本信息JSON格式(-f 取出定制信息)

   logsFetch the logs of a container查看容器日志-f 实时)

   statsDisplay a live stream of container(s) resource usage statistics查看容器实时占用的系统资源

容器启动/停止

   startStart one or more stopped containers

   stopStop one or more running containers

   restartRestart one or more containers

容器执行命令

   execRun a command in a running container(-it 持续输入终端)

     docker exec -it MyWordPress /bin/bash === exit退出

 

 

容器导入导出

 

  exportExport a container's filesystem as a tar archive容器导出

 

      注:导出的容器导入后无法回滚到某一层

 

    docker export furious_bell > /home/myubuntu-export-1204.tar

 

  importImport the contents from a tarball to create a filesystem image

 

    docker import - /home/myubuntu-export-1204.tar

 

多容器管理

  docker理念:一个进程一个容器

  多容器需求:容器之间有数据交互

  无法避免的问题:启动顺序只是容器的顺序,如果被依赖的进程A启动非常耗时,那么依赖它的进程B可能会因进程不能正常交互失败。需要进程B自行增加一些判断和重试机制

  方式1--link

    缺点:容器之间的顺序需要事先考虑,比如先启数据库,在启动服务

docker run --name gitlab-postgresql -d \
--env 'DB_NAME-gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=gitlabpass' \
sameersbn/postgresql:9.4-12
docker run --name gitlab-redis -d 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' \
sameersbn/gitlab:8.4.4

 

 

  方式2--Docker Compose

    下载

      sudo -i

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

      exit

      sudo chmod +x /usr/local/bin/docker-compose

    使用

      创建项目文件夹:mkdir ~/gitlab

      创建项目的Docker compose配置文件:cd ~/gitlab && touch docker-compose.yml

      编辑yml文件,如下:vim docker-compose.yml

      删除旧容器:docker rm -f gitlab-postgresql gitlab-redis gitlab

      创建并启动新容器组:docker-compose up -d-d表示后台启动)

      查看容器组内容器状态:docker-compose -f ~/gitlab/docker-compose.yml ps

      停止容器组:docker-compose -f ~/gitlab/docker-compose.yml stop

      启动容器组:docker-compose -f ~/gitlab/docker-compose.yml start

      删除容器组:docker-compose -f ~/gitlab/docker-compose.yml down

 

×××××××××docker-compose.yml文件内容××××××××××
postgresql: image: sameersbn
/postgresql:9.4-12 environment: - "DB_USER=gitlab" - "DB_PASS=password" - "DB_NAME=gitlabhq_production" redis: image: sameersbn/redis:latest
gitlab: image: sameersbn
/gitlab:8.4.4 links: - redis:redisio - postgresql:postgresql ports: - "10080:80" - "10022:22" environment: - "GITLAB_PORT=10080" - "GITLAB_SSH_PORT=10022" - "GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string"

 

posted @ 2017-07-06 20:48  yc紫日  阅读(261)  评论(0编辑  收藏  举报