Docker 简介

  • Docker 官方文档:

  • 图 1 Docker_Architecture

    • 网易镜像地址:

Docker 常用命令

  • docker search <镜像>:搜索镜像
  • docker pull <镜像>:获取镜像
  • docker rmi <镜像>:删除本地镜像
  • docker run [OPTIONS] IMAGE [COMMAND] [ARG…],常用选项:-d:后台运行容器-e:设置环境变量—expose / -p 宿主端口:容器端口—name:指定容器名称—link:链接不同容器-v 宿主目录:容器目录:挂载磁盘卷
  1. docker pull portainer/portainer && docker run --name portainer --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v ~/docker-data/portainer/data:/data -v ~/docker-data/portainer/cn:/public -d portainer/portainer
  2. # 通过 Docker 运行 MySQL
  3. docker run --name mysql --restart always -p 3306:3306 -v ~/docker-data/mysql/lib:/var/lib/mysql -v ~/docker-data/mysql/etc:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=admin -d mysql:5.7
  4. # 通过 Docker 运行 MongoDB
  5. docker run --name mongo -p 27017:27017 -v ~/docker-data/mongo:/data/db -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=admin -d mongo
  6. # 通过 Docker 运行 Redis
  7. docker run --name redis -p 6379:6379 -d redis
  8. docker run --name consul -p 8500:8500 -p 8600:8600/udp -d consul
  9. docker run --name nacos -p 8848:8848 -e MODE=standalone -d nacos/nacos-server
  10. docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=root -e ABBITMQ_DEFAULT_PASS=admin rabbitmq:management
  11. docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin
  12. docker run --name rabbit-zipkin -d -p 9411:9411--link rabbitmq -e RABBIT_ADDRESSES=rabbitmq:5672 -e RABBIT_USER=root -e RABBIT_PASSWORD=admin openzipkin/zipkin
  • docker start/stop/restart <容器名>

  • docker ps <容器名>

  • docker logs <容器名>

Docker 镜像

  • 镜像是静态的只读模板
  • 镜像中包含构建 Docker 容器的指令
  • 镜像是分层的(联合文件系统)
  • 通过 Dockerfile 来创建镜像
  • Dockerfile 是一个文本文件,里面包含了构建 Docker 镜像所需要用到的命令(Instruction)

构建 Docker 镜像

  • 手动构建:进入 Dockerfile 所在目录,docker build -t spring-boot-demo-docker .
  • 通过 Maven 插件构建:dockerfile-maven-plugin

Docker-Compose

  • Docker-Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排
  • Compose 模板文件是一个定义服务、网络和卷的 YAML 文件
  • Compose 通过一个 docker-compose.yml 模板文件来定义一组相关联的应用容器为一个项目(project)
  • docker-compose -f docker-compose.yml up -d [SERVICE…]:使用的 Compose 模板文件(默认为 docker-compose.yml),在后台启动服务
  • docker-compose ps:列出项目中目前的所有容器
  • docker-compose logs [SERVICE…]:查看服务容器的输出,-f 实时输出
  • docker-compose start [SERVICE…]:启动已经存在的服务容器
  • docker-compose stop [SERVICE…]:停止正在运行的容器
  • docker-compose rm [SERVICE…]:删除(停止状态的)服务容器
  • docker-compose down:停止和删除容器、网络、卷、镜像
  • docker-compose pause/unpause [SERVICE…]:暂停/恢复