docker的主要组成部分
docker是传统的CS架构分为docker client和docker server,向mysql一样
docker的镜像管理
查看镜像列表:
docker images
docker image ls
导出镜像:
docker image save centos > docker-centos6.9.tar.gz
导入镜像:
docker image load -i docker-centos6.9.tar.gz
删除镜像:
docker image rm centos:latest
docker image rm 578c3
搜索镜像 docker search + 镜像名字
给源中镜像打标签:
docker tag nginx:latest 10.0.0.11:80/nginx:latest
推送指定镜像到docker镜像源服务器
docker push 10.0.0.11:80/nginx:latest
获取镜像 (下载) docker pull image_name
官方pull docker pull centos:6.8(没有指定版本,默认会下载最新版) 私有仓库pull docker pull daocloud.io/huangzhichong/alpine-cn:latest
docker history image_name 显示一个镜像的历史
docker build -t <image-name> . *(点一定不能去掉)#使用当前目录下的Dockerfile构建镜像
docker的容器管理
docker -v #查看版本
docker info #查看docker信息
运行容器
docker run --name 容器名 -d -p 3306:3306 mysql docker 启动容器
docker run image_name
docker run -d -p 80:80 nginx:latest
run(创建并运行一个容器)
-d 放在后台
-p 端口映射 :docker的容器端口
-P 随机分配端口
-v 源地址(宿主机):目标地址(容器)
docker run -it --name centos6 centos:6.9 /bin/bash
-it 分配交互式的终端
--name 指定容器的名字
/bin/sh覆盖容器的初始命令
docker run image_name 启动容器***
docker stop container_id 停止容器
docker kill container_name 杀死容器
docker ps (-a -l -q) 查看容器列表
docker container rm 'docker ps -a -q' 删除所有容器
docker rm -f 'docker ps -a -q` #删除所有容器
docker ps -a #查看容器列表
docker exec -it 77cd6bef4dc9 /bin/bash #进容器
docker start/stop container-id||container-name 开启/停止 指定容器id或者容器名称的容器
docker run -d -p 80:80 -v /opt/xiaoniao:/usr/share/nginx/html nginx:latest
docker logs container-name/container-id #查看容器日志
docker ps | grep ${CONTAINER_ID} #查看容器状态
docker commit ID new_image_name #镜像打包 (保存对容器的修改)
docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]
docker inspect <id/container_name> #查看容器内部详情细节
docker login #登录
Ctrl+P+Q #退出而不关闭容器
案例如下:
容器列表
docker ps
docker ps –a
启动容器
docker restart 容器id1 [容器id2] [...]
停止容器
docker stop [container id1] [container id2] [...]
启动容器
docker start [container id1] [container id2] [...]
镜像列表
docker images
删除镜像
docker rmi [image id1] [image id2] [...]
删除所有镜像
docker rmi $(docker images -q)
启动所有容器
docker start $(docker ps -a -q)
更新所有容器启动时自动启动
docker update --restart=always $(docker ps -q -a)
监控
docker stats 容器1 [容器2]
监控所有容器
docker stats $(docker ps -a -q)
docker stats --no-stream=true $(docker ps -a -q)
进入容器内部
docker exec -it [container id] /bin/bash
docker exec -it [container id] bash
查看容器日志
docker logs [container id]
docker-compose
build
构建或重新构建服务。 服务一旦构建后,将会带上一个标记名,例如 web_db。 可以随时在项目目录下运行 docker-compose build 来重新构建服务。
up
构建,(重新)创建,启动,链接一个服务相关的容器。 链接的服务都将会启动,除非他们已经运行。 默认情况, docker-compose up 将会整合所有容器的输出,并且退出时,所有容器将会停止。 如果使用 docker-compose up -d ,将会在后台启动并运行所有的容器。 默认情况,如果该服务的容器已经存在, docker-compose up 将会停止并尝试重新创建他们(保持使用 volumes-from 挂载的卷),以保证 docker-compose.yml 的修改生效。如果你不想容器被停止并重新创建,可以使用 docker-compose up --no-recreate。如果需要的话,这样将会启动已经停止的容器。
down
docker-compose down 停止并删除容器
docker-compose down --rmi local
rm
删除停止的服务容器。
docker-compose rm
logs
查看服务的输出。
docker-compose logs
ps
列出所有容器。
docker-compose ps
kill
通过发送 SIGKILL 信号来强制停止服务容器。支持通过参数来指定发送的信号,例如
$ docker-compose kill