technology-note/linux/docker/2.docker简单使用教程.md
fanxb d8f3281cea Revert "删除历史已被发布数据"
This reverts commit 4d564918e11d3b7d5cf31ae6aee3befe2f559b62.
2019-04-16 09:56:12 +08:00

135 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 #小写phostPort:ContainerPort 绑定容器端口到当前主机端口
-P #大写Pdocker随机映射一个端口到容器内部开放的网络端口
-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服务支持多终端连入不推荐太麻烦了。