---
id: "2018-12-26-13-18"
date: "2018/12/26 13:18"
title: "2.docker简单使用教程"
tags: ["docker","mysql"]
categories: 
- "linux"
- "docker教程"
---

### 1、镜像操作

#### 1. 列出镜像

```bash
docker images;
```

#### 2. 删除镜像

```bash
docker rmi  镜像id/镜像名:版本
```

#### 3. 搜索镜像

```bash
docker search 镜像名
```

<!-- more -->

#### 4. 拉取镜像

```bash
#如不加tag默认拉取latest
docker pull name:tag
```

#### 5. 镜像导出/导入文件

```bash
# 使用name:tag或者id确定要导出的镜像，> 导出的路径
docker save name:tag/id > /home/image-save.tar

# 加载镜像文件到docker中
docker load -i /home/image-save.tar
```

#### 6. 查看镜像创建历史

```bash
docker history [options] image
# -H:已可读的格式打印镜像大小和日期，默认使用
# --no-trunc：显示完整的提交记录
# -q:仅列出提交记录id
```

#### 7. 容器保存为镜像

```bash
docker commit -m "提交信息" -a "作者信息" 容器id/容器名 镜像名:镜像tag
```

### 2.容器操作

#### 1.通过镜像创建容器

```bash
docker run -itd -p 3306:3306 -p 9200:9200 -w /home  --name oms_env oms_env:0.6

# 参数说明
-i #让容器的标准输入 通常it配合使用
-t #docker分配一个伪终端并绑定到容器的标准输入上
-d #容器后台运行
-p 8080:80 #小写p，hostPort:ContainerPort 绑定容器端口到当前主机端口
-P #大写P，docker随机映射一个端口到容器内部开放的网络端口
-w #指定容器工作空间
--bind 容器名[:容器别名]  #容器链接
```

#### 2.保存容器到文件/恢复文件到镜像

```bash
# 保存容器到文件
docker export 容器名/容器id > /home/container_export.tar

#从文件恢复镜像
docker import - test:v1 < /home/container_export.tar
```

#### 3.删除容器

```bash
docker rm 容器id/容器名
```

#### 4.拷贝文件到容器内

```bash
docker cp hostPath 容器id:containerPath
#例如
docker cp /home/ubuntu ecc:/home
#将本机的/home/ubuntu目录拷贝到了以ecc开头的容器内的home目录
```

#### 5.从容器拷贝文件到主机

```bash
docker cp 容器id:containerPath hostPath
#例如
docker cp ecc:/home/ubuntu /home
#将ecc开头的容器内的ubuntu目录拷贝到了本机的/home目录
```

#### 6.连接到容器

&emsp;&emsp;有三种办法

1. 通过 attach 直接进入到容器，用法如下：

```bash
docker attach containerName/containerId
```

不推荐此种用法，同时只能有一个终端操作容器，即时有多个终端连入，界面会同步变化

2. 通过exec连接容器，用法如下：
```bash
docker exec -it containerName/containerId bash
```

以bash连入容器，推荐此种用法,支持多终端连入操作。

3.通过给容器安装ssh服务，支持多终端连入，不推荐，太麻烦了。