Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
一、Doker 安装
1、安装路径(mac版)
https://docs.docker.com/desktop/mac/install
2、下载安装(点击红色标记下载)
3、配置镜像加速器(国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。)完成镜像加速的配置就可以简单的使用了
· 点击->小鲸鱼->首选项(Preferences)->Docker Engine(此处我用的是网易镜像:https://hub-mirror.c.163.com/)
二、常用命令(以下命令以mysql镜像为例)
1、查看基本配置信息
docker info
2、查看所有命令(帮助)
docker或docker -H
3、查找镜像【可以理解为中间件/插件】在docker Hub 上查找镜像
docker search 镜像名(例如:mysql)
4、拉取【下载】镜像(在docker Hub 上拉取镜像)
docker pull 镜像(例如:mysql) 镜像后可以跟版本号,如果没有版本号默认拉取最后版本,例如 docker pull mysql:8.0.1
5、查看镜像(已安装镜像)
docker images
6、删除镜像(本地镜像)
docker rmi 镜像名
7、新建容器
1、方法一(此方法新建容器,容器名称是随机的)—— 新建完成默认启动
docker run -it(d) 镜像名 /bin/bash 例如 docker run -it(d) mysql /bin/bash
2、方法二(此方法新建容器,可以自定义容器名)—— 新建完成默认启动
docker run -it(d) --name 容器名 mysql /bin/bash 例如 docker run -it(d) --name mysql_test mysql /bin/bash
3、方法三(此方法也是映射端口)—— 新建完成默认不会启动容器,不知道是不是mysql镜像(其他镜像没有试)的原因,此方法建的容器启动不了
随机生成一个容器名 docker run -it(d) p 3000:3001 镜像名 例如 docker run -it(d) p 3000:3001 mysql 自定义容器名 docker run -it(d) --name 容器名 -p 3000:3001 镜像名 例如 docker run -it(d) --name mysql_test -p 3000:3001 mysql 其中:(-p也可以写成-P) -p(小写):自定义接口,可以绑定指定ip 例如 -p 127.0.0.1 3000:3001 -P(大写):随机接口 3000: 向外部暴露端口(访问时使用) 3001: 容器端口
注释:对于命令中的-itd 来说,-itd可以分开写(-i -t -d)其中 -i:交互式操作 -t:开启一个伪终端 -d:不进入伪终端。如果想进入的话利用docker exec,如果想退出伪终端则用exit
8、进入伪终端
docker exec -it 容器名或容器ID /bin/bash
9、以mysql镜像,生成容器并开启(类似于命令7中的方法三)
docker run -itd --name mysql_test -p 3000:3001 -e MYSQL_ROOT_PASSWORD=123456 mysql 对于mysql来说利用该命令新建并启动容器的话必须加 -e MYSQL_ROOT_PASSWORD=123456(可能是mysql安全性的特殊要求)
10、开启容器
docker start 容器名或容器ID 例如 docker start mysql_test
11、关闭容器
docker stop 容器名或容器ID
12、删除容器
该命令只能删除已经停用的容器 docker rm 容器名或容器ID 该命令可以删除正在运行的容器 docker rm -f 容器名或容器ID
13、查看容器
该命令查看正在运行的容器 docker ps 该命令查看所以容器 docker ps -a