docker 简介

docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源。docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的linux服务器,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类iphone的app),并且容器开销极其低。(底层使用LXC实现)

docker 架构

Docker Architecture diagram

docker安装

  • 菜鸟中有完整的安装教程

Ubuntu Docker 安装 | 菜鸟教程 (runoob.com)

  • 安装完配置镜像加速

Docker 镜像加速 | 菜鸟教程 (runoob.com)

docker 使用

一个简单示例

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql

解读:

  • docker run: 创建并运行一个容器,-d是让容器在后台运行

  • --name mysql: 给容器起一个名字

  • -p 3306:3306: 设置端口映射 (主机端口:容器端口)

  • -e KEY=VALUE: 设置环境变量 在Docker Hub Container Image Library | App Containerization查看

  • mysql: 镜像名字 组成:(Repository:TAG)

常见命令

容器使用

bash
# 创建并运行容器
docker run
# 删除容器
docker rm -f
# 进入容器
docker exec
# 查看容器信息
docker ps

docker start
docker stop
docker restart

镜像使用

# 查看本地镜像
docker images
# 获取镜像
docker pull <>
# 查找镜像
docker search <>
# 删除镜像
docker rmi <>
# 构建镜像
docker build

镜像构建

docker 网络

Docker 网络模式详解及容器间网络通信 - 知乎 (zhihu.com)

DockerFile

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

Docker Compose

Compose 是用于定义和运行多容器 Docker 应用程序的工具。

参考

Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI_docker-compose部署单机最新版本的kafka-CSDN博客