Docker
What
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-63SN9vgq-1595591131713)(http://img.haifengat.com/20200724193209.png)]
Docker是一个平台,它提供哪些服务呢?任何一台装有Docker的机器上你都可以建立、发布、运行你的应用程序。
docker vs vm
Why
省事、省时、省钱
- 用来取代虚拟机
- Docker可以在几毫秒内为您提供一个沙盒环境。
- Docker在一台机器上起成百上千个独立的容器,有助于模拟网络,使网络建模成为一件轻而易举的事情。
- 由于你可以将所有系统打包进你的Docker容器,所以可以移动工作,甚至脱网离线工作。
- Docker强迫你记录软件依赖,方便你其他地方布局或者安装软件。
- 实现持续交付
- 减少调试开销
docker 前后
开发阶段、测试阶段和版本发布阶段
How
网站
https://hub.docker.com/
http://www.dockerchina.cn
https://rancher.com/
概念
镜像 image
模板
容器 container
实例
安装
Win
Docker Desktop - Win https://hub.docker.com/editions/community/docker-ce-desktop-windows
CentOS8
指令
官方说明
https://docs.docker.com/engine/reference/commandline/docker/
Run
参数
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数 | 说明 |
---|---|
–name | 给容器命名 |
-d | 指定容器运行于后台 |
-i | 打开STDIN,用于控制台交互 |
-t | 分配tty设备,可以支持终端登录 |
-u | 指定容器的用户 |
-a | 登录容器 |
-w | 指定容器的工作目录 |
-e | 指定环境变量 |
-p | 指定容器暴露的端口 |
-h | 指定容器的主机名 |
-v | 给容器挂载存储卷 |
–dns=[] | 指定容器的dns服务器 |
–privileged | 指定容器是否为特权容器 |
–rm | 指定容器停止后自动删除容器 |
# 拉取镜像
docker pull centos
docker images
# 创建容器
docker run centos
docker ps -a
# 创建并执行
docker run -it centos
docker ps -a
# 后台执行并命名
docker run -itd --name c8 centos
docker ps
# 容器内执行指令
docker exec -it c8 /bin/bash
# 创建容器并挂载宿主目录
docker run -itd -v /home/tmp:/home/tmp c81
# 对宿主目录操作
docker exec -it c81 /bin/bash
`cat "abc" > /home/tmp/a.txt`
容器退出
- 关闭退出
exit
- 不关闭退出
ctrl+P+Q
- 逐层推出(包括ssh)
ctrl+D
查看容器日志
docker logs -t -f --tail 10 c8
参数 | 作用 |
---|---|
-t | 显示时间 |
-f | 持续增加 |
–tail n | 显示最后n条 |
查看容器进程
docker top c8
查看容器细节
docker inspect c8
重新进入未关闭的容器
docker attach c8
执行容器内指令
- 容器外执行取结果
格式:docker exec -t 容器 命令 参数
docker exec -t c8 ls -l /tmp
- 进入容器=attach
格式:docker exec -it 容器 /bin/bash
docker exec -it c8 /bin/bash
复制容器内文件到宿主
格式:docker cp 容器:文件路径 宿主路径
docker cp c8:/home/t.txt .