什么是docker

Docker 是一个用于开发、发布和运行应用程序的开放平台。
Docker 初级分享 - 图1

我可以使用 Docker 做什么?

快速、一致地交付应用程序。
举个例子

  1. 后台生成海报的功能,上线发现中文变成了乱码;测试环境没有任何问题。经过排查,发现线上没有这个字体。
  2. 测试服和线上用的是同一个镜像,就不会出现这样的问题。

总结:”Build once,Run anyWhere”

Docker架构

Docker 使用客户端-服务器架构
Docker 初级分享 - 图2

镜像

镜像就像一个模版,通过这个模版来创建容器服务。一个镜像可以创建多个容器。

容器

Docker 可以利用容器运行一个或一组应用。
目前我们可以把容器看作一个简易版的linux系统。

仓库

仓库就是存放镜像的地方。
仓库分为私有仓库和公有仓库

Docker 安装

官网连接:https://docs.docker.com/engine/install/centos/

安装docker客户端、引擎、容器

  1. yum install docker-ce docker-ce-cli containerd.io

启动docker

  1. systemctl start docker
  2. docker version

卸载docker

  1. yum remove docker-ce docker-ce-cli containerd.io
  2. rm -rf /var/lib/docker # 默认工作路径

Docker 镜像命令

帮助命令

  1. docker 命令 --help

docker iamges

-a, —all # 列出所有镜像 -q, —quiet # 只显示镜像ID

image.png

解释
REPOSITORY 镜像仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像大小

docker search

https://hub.docker.com/

  1. docker search mysql

image.png

  1. docker search -f STARS=3000 mysql

image.png
dockerhub https://hub.docker.com/
image.png

docker pull

  1. docker pull mysql # 不指定版本号默认下载最新版
  2. docker pull mysql:5.7 # 下载指定版本的mysql

docker rmi

  1. docker rmi -f 镜像id # 删除指定镜像
  2. docker rmi -f 镜像id 镜像id 镜像id # 删除指定多个镜像,id之间记住空格
  3. docker rmi -f $(docker images -aq) # 删除全部镜像

Docker 容器命令

docker run

新建容器并启动

—name=”Name” 容器名字,用于区分容器 -d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 主机端口:容器端口(小写)
-P 随机指定端口(大写) -v 将文件夹挂载到主机 -e 传递环境变量

启动mysql为例

  1. docker run -p 3306:3306 --name mysql \
  2. -v /usr/local/docker/mysql/conf:/etc/mysql \
  3. -v /usr/local/docker/mysql/logs:/var/log/mysql \
  4. -v /usr/local/docker/mysql/data:/var/lib/mysql \
  5. -e MYSQL_ROOT_PASSWORD=123456 \
  6. -d mysql:5.7

docker ps

  1. docker ps #列出当前正在运行的容器
  2. docker ps -a #列出历史运行过的容器
  3. docker ps -n=1 #显示最近创建的容器
  4. docker ps -q #只显示容器的编号

docker rm

  1. docker rm 容器id # 删除指定容器,不能删除正在运行的容器,强制删除用rm -f
  2. docker rm -f $(docker ps -aq) # 删除所有容器

启动容器

  1. docker start 容器id # 启动容器
  2. docker restart 容器id # 重启容器
  3. docker stop 容器id # 停止正在运行的容器
  4. docker kill 容器id # 强制停止当前容器

docker logs

  1. docker logs [可选参数] 容器ID # 查看指定容器的日志

进入容器

  1. docker exec -it 容器id /bin/bash # 进入容器后开启一个新的终端
  2. docker attach 容器ID

image.png

docker inspect

  1. docker inspect 容器id # 可以看到容器的一些基本信息

image.png
image.png
image.png
致谢:
视频参考:狂神说Java
文档参考:Docker官网