一、介绍
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口。几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或者包装系统。
1.相关资源
官网:http://www.docker.com
仓库:http://hub.docker.com
2.安装环境
centOS 7 以上(不包含7.0),64位系统,内核3.10以上。
3.基本组成
镜像(image)
容器(container)
仓库(repository)
二、Docker安装
1.检查系统环境
cat /etc/redhat-release
2 安装gcc
yum -y install gcc gcc-c++
3 卸载旧版本docker
yum -y remove docker docker-common docker-selinux docker-engine
4 安装软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
5 设置镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
6 更新yum 索引
yum makecache fast
7 安装(ce版)
ce是官方提供的免费版本
yum -y install docker-ce
8 启动Docker
systemctl start docker
9 阿里云镜像加速
默认访问的仓库实在国外所以访问速度是没办法保证的。为了更好的体验,我们可以配置阿里云镜像加速
- 登录阿里云 -> 进入控制台 -> 产品与服务 -> 容器镜像服务 ->
- 找到镜像工具 -> 镜像加速器 -> 选择操作系统
- 上图配置命令为:
- 创建docker文件夹
- 创建daemon.json文件
- 写入数据
- 重新加载配置文件
- 重启docker
- 配置命令
- 1.创建docker文件夹
- sudo mkdir -p /etc/docker
- 2.创建daemon.json文件
- vim /etc/docker/daemon.json
- 3.写入数据 -> Esc -> :wq 保存并退出
- {
- “registry-mirrors”: [“https://j8img1md.mirror.aliyuncs.com”]
- }
- 4.重新加载配置文件
- sudo systemctl daemon-reload
- 5.重启docker
- sudo systemctl restart docker
- 1.创建docker文件夹
10 Docker卸载
systemctl stop docker
yum -y remov docker-ce
rm -rf /var/lib/docker
三、 常用命令
1 帮助命令
命令 | 说明 |
docker version | 查看docker的版本信息 |
docker info | 查看docker的详细信息 |
docker –help | docker的帮助命令,可以查看到相关的其他命令 |
查看版本
docker version
2 镜像命令
命令 | 说明 |
docker images | 列出本地镜像 |
docker search 镜像名称 | 从docker hub 上搜索镜像 |
docker pull 镜像名称 | 从docker hub 上下载镜像 |
docker rmi 镜像名称 | 删除本地镜像 |
docker run 镜像名称 | 运行本地镜像(如果本地没有会到远程仓库下载) |
2.1 docker images
命令 | 说明 |
-a | 列出本地所有镜像 |
-q | 只显示镜像ID |
–digests | 显示镜像摘要 |
–no-trunc | 显示完整的镜像信息 |
2.2 docker rmi 镜像名称
命令 | 说明 |
docker rmi -f 镜像名称 | 强制删除镜像 |
docker rmi -f 镜像名称1 镜像名称2 | 强制删除多个镜像 |
docker rmi -f $(docker images -qa) | 删除全部镜像 |
3 容器命令
有镜像才能创建容器,下载一个镜像
docker pull centos
3.1 创建并启动容器
创建并启动过一个容器的命令
docker run [OPRIONS] IMAGE [COMMAND]
OPTIONS常用参数
命令 | 说明 |
–name | 容器新名字”:为容器指定一个名称 -d 后台运行容器并返回容器ID,也即启动守护式容器 -i 以交互模式运行容器,通常与-t同时使用 -t 为容器重新分配一个伪输入终端,通常与-i同时使用 -P: 随机端口映射 -p 指定端口映射,有以下4中格式:Ip:hostPort:containerPort;Ip::containerPort;hostPort:contalnerPort;contalnerPort |
交互式的容器
docker run -it centos /bin/bash
执行命令后会直接进入到容器内
容器与宿主机对比(上边是宿主机,下边是容器)
3.2 查看运行的容器
我们要查看当前正在运行的容器有哪些,可以通过ps命令来查看(在宿主机中查看)
docker ps [OPTIONS]
OPTIONS可用参数
命令 | 说明 |
空 | 列出正在运行的容器 |
-a | 列出当前所有正在运行的容器 + 历史上运行过的 |
-l | 显示最近创建的容器 |
-n | 显示最近n个创建的容器 |
-q | 静默模式,只显示容器编号 |
–no-trunc | 查看所有信息 |
3.3 退出容器命令
命令 | 说明 |
exit | 容器停止并退出 |
ctrl+p+q(快捷键) | 容器不停止,只退出 |
3.4 启动容器
docker start 容器ID或名称
3.5 重启容器
docker restart 容器ID或名称
3.6 停止容器
docker stop 容器ID或名称
还可以通过强制停止容器
docker kill 容器ID或名称
3.7 删除容器
有时容器使用过完就没有作用了,我们可以删除掉容器,使用rm命令
删除一个容器
docker rm 容器ID
删除多个容器
docker rm 容器ID 容器ID
删除所有容器
docker rm -f $(docker ps -qa)
4 其他命令
4.1 守护模式容器
使用守护模式创建并启动一个容器
docker run -d 容器名称
使用以上命令创建并启动的容器,如果容器内没有程序在执行,会立即停止调,此时使用 docker ps 查看不到刚刚的创建的容器(因为容器已经停止了)
4.2 查看运行日志
docker logs -t -f --tail 3 容器ID
4.3 查看容器进程
在宿主机中使用top查看, 在docker中也是
docker top 容器ID
4.4 查看容器细节
docker inspect 容器ID
4.5 进入正在运行的容器
命令 | 说明 |
exec | 在容器中打开新的终端,并且可以启动新的进程 |
attach | 直接进入容器启动命令的终端,不会启动新的进程 |
exec 不进入容器,给容器发布命令,如在宿主机中打印容器目录:
docker exec -it 容器ID ls
attach 进入到容器内
docker attach 容器ID
4.6 文件复制
我们有有时需要从容器中拷贝数据到宿主机中
docker cp 容器ID:容器内路径 宿主机路径
验证步骤一、在容器中创建一个文件夹,在文件夹内创建一个文本,在文本内写入数据
验证步骤二、在宿主机中使用复制命令并查看
- 以上操作是:
- 在宿主机创建文件夹mzw01,在mzw01中创建a.txt并写入‘hello Docker’
- 在宿主机中使用复制命令,将容器中mzw01文件夹复制到宿主机mzw02文件夹
- 查看宿主机mzw02文件夹内容
- 注意
- 复制命令可以复制整个文件夹,也可以复制单个文件
4.7 查看容器详细信息
docker inspect 容器ID