docker入门教程
首先,Docker是什么?Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。既然知道了Docker是什么,接下来就是安装和使用了,也非常简单。
docker的安装
我们可以直接去 docker官网 下载所需要的安装包
我用的windows系统的,Linux按需要的系统版本下载。
windows10开启了虚拟化设置
我说一下我使用windows安装docker的坑,首先windows7好像是装不了的只能装Docker Toolbox代替,windows10没有开启虚拟化功能会报错,而这个功能需要专业版,如果你是win10家庭版也有解决办法,我是参考这个博文解决的 win10家庭版开启Hyper-V
docker的三个概念
docker有三个核心概念,首先仓库,他是存放镜像的地方,docker有官方仓库https://hub.docker.com, 如果是公司使用的话,可以自建一个公司库,从仓库取出镜像之后,可以通过镜像创建多个容器,每个容器可以运行一个系统实例。
镜像
相当于容器的模板,使用镜像可以创建容器
使用 docker images
命令可以查看本地存了哪些镜像。
C:\Users\Suviky>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
容器
用来运行实例的,比如容器A在运行mysql,容器B在运行redis。 使用 docker ps
命令可以查看目前哪些容器正在运行。
C:\Users\Suviky>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0c83773d7f10 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g "/bin/sh -c '/home/o…" 2 months ago Up 3 days 0.0.0.0:1521->1521/tcp helowin_oracle11g
仓库
存放镜像的地方,我们使用 docker pull
命令从远程仓库拉取镜像。
C:\Users\Suviky>docker pull mysql:5.7.29
冒号后面也可以不写那样写法相当于the latest拉取最新版本的镜像
如何使用
本篇只会说明常用的一些操作,进阶操作下次再讲,打个比方如果我们要使用docker建一个mysql容器,那么我们需要三部操作。
- 拉取镜像
C:\Users\Suviky>docker pull mysql:5.7.29
- 查看镜像ID
C:\Users\Suviky>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zookeeper latest a08774a5fe84 2 months ago 252MB
redis latest 4cdbec704e47 2 months ago 98.2MB
mysql 5.7.29 413be204e9c3 2 months ago 456MB
- 使用镜像创建容器
C:\Users\Suviky>docker run -it -p 3306:3306 413be204e9c3 bash
这里参数 -i 代表interaction 交互式操作
参数-t 代表 terminal 终端式
参数-p 代表 port 映射端口号 冒号前面是本机端口,后面是容器端口这个不配你用的时候访问不到
bash 代表命令 表示我们期望有一个交互式shell
- 退出容器
C:\Users\Suviky>exit
- 查看运行的容器
C:\Users\Suviky>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a467aae5c71f mysql:5.7.29 "docker-entrypoint.s…" 2 months ago Up 11 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
- 进入指定的容器
C:\Users\Suviky>docker exec -it a467aae5c71f bash