Docker笔记整理(1)

虚拟化技术

虚拟化的划分

  • 应用虚拟化
  • 平台虚拟化

    1. 完全虚拟化
    2. 硬件辅助虚拟化
    3. 部分虚拟化
    4. 准虚拟化
    5. 操作系统虚拟化 Docker的位置

帮助文档
docker [OPTIONS] --help

Docker核心

早期: Linux Containers 简称 LXC技术
0.9版本以后: libcontainer libcontainer

安装流程

Ubuntu

卸载旧版本

旧版本的Docker称为docker或者docker-engine

sudo apt-get remove docker \
            docker-engine \
            docker.io

Ubuntu 14.04 可选内核模块

sudo apt-get update

sudo apt-get install \
            linux-image-extra-$(uname -r) \
            linux-image-extra-virtual

添加国内源

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

安装 Docker CE

sudo apt-get update
sudo apt-get install docker-ce

使用脚本安装

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

启动 Docker CE

sudo systemctl enable docker
sudo systemctl start docker

ubuntu 14.04

sudo service docekr start

建立docker用户组

sudo groupadd docker
# 将当前用户加入docker用户组
sudo usermod -aG docker $USER

测试安装

docker run hello-world

镜像篇

# 查看镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]

# -a -all bool 列出所有镜像文件,包括临时 默认false
# --digests bool 列出所有镜像文件的数字标识 默认为false
# -f --filter list 过滤规则
# --format string 输出格式,类似Golang的template
# --no-trunc bool 不对输出结果太长的进行截断 默认为false
# -q --quiet bool 仅输出id 默认为false

# 拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]

《Docker笔记整理(1)》

# 添加镜像标签
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
# 查看该镜像的详细信息
docker inspect [OPTIONS] NAME|ID [NAME|ID...]

《Docker笔记整理(1)》

# 查看镜像的每个层
docker history [OPTIONS] IMAGE

《Docker笔记整理(1)》

# 搜索镜像
docker search [OPTIONS] TERM
# --no-trunc bool 不对输出结果太长的进行截断 默认为false
# --limit int 最大搜索结果长度

# 删除镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
# 如果镜像有容器,可以使用-f强势删除,但不推荐

# 创建镜像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# -a --author string 作者
# -c --change list 提交时执行的指令
# -m --message string 提交信息
# -p --pause bool 提交时暂停容器运行

《Docker笔记整理(1)》

# 将容器导出到归档文件
docker export [OPTIONS] CONTAINER
# -o --output string 写入到文件

# 将归档容器导入为镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
# -c --change list 提交时执行的指令
# -m --message string 提交信息

《Docker笔记整理(1)》

# 存储镜像
docker save [OPTIONS] IMAGE [IMAGE...]
# -o --output string 写入到文件

# 加载镜像
docker load [OPTIONS]
# -i --input string 文件加载

《Docker笔记整理(1)》

镜像总结

最后,上一张思维导图来总结镜像篇的知识点

《Docker笔记整理(1)》

容器篇

启动容器的过程

  1. 检查本地是否有镜像
  2. 利用镜像创建容器,并启动该容器
  3. 分配一个文件系统给容器,并在只读的镜像层挂载一层可读写层
  4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器
  5. 从网桥的地址池配置一个ip给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后自动终止
# 创建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 处于运行状态
# -d --detach 守护态运行

# 创建容器
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
# 处于暂停状态
# 查看容器
docker ps [OPTIONS]

# 停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
# -t --time int 等待数秒后停止 默认为10秒

# 启动容器
docker start [OPTIONS] CONTAINER [CONTAINER...]

# 重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]

# 删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
# -v --volumes 删除volumes

《Docker笔记整理(1)》

# 在运行中的容器执行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
# -e --env list 配置环境
# -i --interactive 打开标准输入流
# -t --tty 分配伪终端
# -u --user string 用户名或者UID

# 绑定输入,输出和错误流
docker attach [OPTIONS] CONTAINER
# --detach-key string 退出attach模式快捷键
# --no-stdin 不绑定输入流

扩展: 使用nsenter进入容器
四种进入容器的方法

《Docker笔记整理(1)》

容器总结

最后,上一张思维导图来总结镜像篇的知识点

《Docker笔记整理(1)》

    原文作者:liyinanCoder
    原文地址: https://segmentfault.com/a/1190000016340098
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞