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"