Docker

Docker概念

Docker Engine,它是一个客户端 - 服务器应用程序

REST API指定与守护进程交互的接口 ,命令行接口(CLI)与守护进程通信

Docker基本组成

  • docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
  • docker仓库(Registry):用来保存各种打包好的软件镜像;仓库分为公有仓库和私有仓库。(很类似
    maven)
  • docker镜像(Images):软件打包好的镜像;放在docker仓库中;
  • docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

Docker命令

# 版本
docker info
docker version

docker images

# 删除镜像
docker image rm tomcat:9.0.20-jre8-alpine

# 制作镜像压缩包
docker save tomcat:9.0.20-jre8 -o tomcat9.0.20.tar

# 导入镜像
docker load -i tomcat9.0.20.tar

# 镜像信息
docker inspect tomcat:9.0.20-jre8
docker inspect -f {{".Size"}} tomcat:9.0.20-jre8

docker tag 原镜像 新镜像

# 运行容器.-p 主机端口:容器端口(容器端口映射到主机端口)
docker run -it --rm -p 8080:8080 tomcat:9.0.20-jre8-alpine

# 容器名称 tomcat9
docker run -itd --name tomcat9 -p 8080:8080 tomcat:9.0.20-jre8-alpine
# 查看容器
docker ps

# 容器shell
docker exec -it {id} /bin/bash

# 查看log
docker logs -f tomcat9

docker stop tomcat9
docker rm tomcat9

# 创建容器
docker create -it --name tomcat9 -p 8080:8080 9.0.20-jre8-alpine

容器

容器是在隔离环境运行的一个进程,代码和环境打包的集合

网络

# 查看container网络
docker network inspect bridge

# 创建自定义网络
docker network create -d bridge my-lagou-bridge

# 自定义网络
docker create -itd --name --network lagou-bridge tomcat9 -p 8080:8080 9.0.20-jre8-alpine

docker network inspect lagou-bridge

# 容器绑定到lagou-bridge
docker network connect lagou-bridge nginx2

数据卷

  • 数据卷可以在容器之间共享数据
  • 数据卷默认一直存在,即使容器删除

类型:

  1. 宿主机数据卷
  2. 命名数据卷
  3. 匿名数据卷

docker run -it -v /宿主机目录:/容器目录

Docker Compose

Docker Compose 容器编排工具

docker-compose.yml

4 个一级 key:

  • version
  • services
  • networks
  • volumes
# 后台启动
docker-compose up -d

# 停止删除
docker-compose down

Dockerfile

Dockerfile

FROM mysql:5.7.31
# 作者信息
MAINTAINER mysql from date UTC by Asia/Shanghai "[email protected]"
ENV TZ Asia/Shanghai
# 制作镜像,--rm :设置镜像成功后删除中间容器
docker build --rm -t 192.168.198.101:5000/lagouedu/mysql:5.7 .

你可能感兴趣的:(Docker)