hyzqb 发表于 2018-1-12 11:05:52

Docker容器管理

容器创建
  create:Create a new container
  run:Run a command in a new container运行一个新容器

容器删除
  rm:Remove one or more containers

容器信息
  ps:List containers查看正在运行的容器(-a 为查看所有的容器,包括已经停止的。)
  inspect:Return low-level information on Docker objects查看容器基本信息JSON格式(-f 取出定制信息)
  logs:Fetch the logs of a container查看容器日志(-f 实时)
  stats:Display a live stream of container(s) resource usage statistics查看容器实时占用的系统资源

容器启动/停止
  start:Start one or more stopped containers
  stop:Stop one or more running containers
  restart:Restart one or more containers

容器执行命令
  exec:Run a command in a running container(-it 持续输入终端)
  docker exec -it MyWordPress /bin/bash === exit退出

容器导入导出
  export:Export a container's filesystem as a tar archive容器导出
  注:导出的容器导入后无法回滚到某一层
  docker export furious_bell > /home/myubuntu-export-1204.tar
  import:Import 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"
  
页: [1]
查看完整版本: Docker容器管理