前言
看视频学习Docker
初识docker

开发环境由开发操作
测试环境测试人员操作
生产环境由运维人员操作
产品的开发经过开发->测试->生产上线这几个阶段
假如我们如果在开发环境装了个java8,但是在测试环境中用的java7,此时可能会在不同的环境中造成不同的影响(代码水土不服)
我们可以把代码和环境同时发给测试,这时可以规避这种情况
docker实际上就是这种容器,解决跨环境迁移的问题。
简介
-
docker是一个开源的应用容器引擎
-
诞生于2013年,基于go语言,Docker Inc出品。
-
可以让开发者打包他们的应用以及依赖包装到一个轻量级的可移植的容器中,可以发布到任何Linux机器上。
-
容器是完全使用沙箱机制,互相隔离
-
容器开销极低
-
从17.03之后分为CE(Community Edition)版和EE(Enterprise Edition)版,也就是社区版和企业版。
安装
Docker支持多平台,这里介绍debain的
sudo apt-get install docker-ce
能看到版本说明安装成功

Docker架构

说明:docker可以管理本地和远程容器,docker都是以守护进程的形式运行,容器安装对应的image。可以从docker hub中获取image,也可以从私有仓库获取。
配置docker镜像加速器
由于docker hub在国外,我们需要配置镜像加速获取容器。
我们尝试使用阿里云进行登录
步骤:
1 登录到阿里云地址,找到容器镜像服务

2 找到镜像工具 - 镜像加速器,会显示加速器地址

3 下面会有配置的命令。直接复制执行即可。

执行的命令是添加了一个docker配置文件。
Docker命令
分为3个:
1 通过命令操作docker服务
2 通过命令操作docker image
3 通过命令操作容器
操作服务命令
systemctl start docker
systemctl stop docker
systemctl status docker
systemctl restart docker
# 开机启动docker
systemctl enable docker
镜像相关
- 查看镜像
docker images

- 搜索镜像
docker search {ImageName}

从docker镜像源中搜索image
说明:每一列分别代表:
镜像名,描述,订阅数,是否官方镜像,自动流程构建
- 拉取镜像
docker pull {ImageName}[:{Version}]
实际上我们docker search的时候并没显示具体版本,我们可以在dockerhub地址中搜索镜像名,里面提供了版本号

示例:
docker pull redis:5.0

可以同时pull多个版本的软件到本地
- 删除镜像
docker rmi {ImageID}
docker rmi {dockername}[:{Version}]
ID可以从docker images中查看
示例:

删除所有镜像:
docker rmi `docker images -q`
容器相关命令
-
查看容器
查看正在运行的容器
docker ps参数:
-a : 查看正在运行的容器包含运行记录
显示标题说明:

| 标题名称 | 说明 |
|---|---|
| CONTAINER ID | image id |
| IMAGE | image名称 |
| COMMAND | 初始命令(/bin/bash) |
| CREATED | 创建时间 |
| STATUS | 执行时间/执行状态 |
| PORTS | 端口 |
| NAMES | 容器名称 |
-
创建容器
# 容器初始指令可以指定为/bin/bash docker run {params} image_name[:version] [容器初始指令]参数:
-i : 以交互模式运行容器,通常与 -t 同时使用;
-t :给容器分配一个终端
一般以-it创建的容器,称为交互式容器, -id创建的容器,称为守护式容器
--name={name} # 给容器起个名称
-d : 以守护进程的方式创建容器(容器后台运行),否则退出后自动关闭容器
示例:

-
进入容器
一般我们使用-d将容器后端运行后,我们这么进入容器。
docker exec {params} {container name|container id} {初始命令}示例:
我们使用下面的命令开启一个容器
docker run -id nginx /bin/bash

由于加了-d参数,我们发现执行完成之后并没有进入容器。但是提供了一个容器id
此时我们使用如下命令进入容器:
docker exec -it ed2d54ad320c1299717c63cfef276459f0641db514f330e2473551a53fd49f60 /bin/bash

此时就进入成功了,我们还可以在启动的时候指定--name来指定一个容器名称,然后exec后指定名称。
-
启动容器
使用docker stop停止掉的容器,可以使用如下命令重新启动
docker start {container name | container id} -
停止容器
一般用来停止-d启动的容器
docker stop {container id | container name} -
删除容器
docker rm {container id | container name}注:正在开启中的容器不能删除掉
删除所有容器:
docker rm `docker ps -aq` -
查看容器信息
docker inspect {container name|container id}
浙公网安备 33010602011771号