Docker的介绍、安装与常用命令
一、介绍
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 阿里云镜像加速
默认访问的仓库实在国外所以访问速度是没办法保证的。为了更好的体验,我们可以配置阿里云镜像加速
- 登录阿里云 -> 进入控制台 -> 产品与服务 -> 容器镜像服务 ->
- 找到镜像工具 -> 镜像加速器 -> 选择操作系统
上图配置命令为:
1.创建docker文件夹
2.创建daemon.json文件
3.写入数据
4.重新加载配置文件
5.重启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) | 删除全部镜像 |
-f 表示强制删除
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