DOCKER学习笔记
docker简介
基本介绍
Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
应用场景
- Web应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
DOCKER架构
基本概念
- 镜像(Image):Docker 镜像,就相当于是一个root文件系统。比如官方镜像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。(pull下来的是裸机,基本上啥也没有)
- 容器(Container):镜像和容器的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
概念 | 说明 |
---|---|
images | Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 |
container | 容器是独立运行的一个或一组应用,是镜像运行时的实体。 |
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
repository | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。Docker Hub提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 |
docker安装与其它配置(win10)
下载docker desktop
安装Hyper-V
- Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10
注意!这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V! - 右键单击开始菜单->选择应用与功能->查找“启用或关闭windows功能”->将Hyper-V中的功能全部勾选即可
- 或者可以通过命令来启用 Hyper-V ,请右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
常用命令
常用参数
参数 | 作用 | 实例 |
---|---|---|
-i -t | 交互式操作 终端操作 | docker run -it ubuntu /bin/bash /bin/bash:放在镜像名后的是命令,表示希望有个交互式 Shell |
-d | 后台运行,默认不进入容器(常用于创建镜像后进行设置) | docker run -itd ubuntu /bin/bash |
-p | 指定端口(反向映射!!!如实例中是将8888端口映射成8080端口) | docker run -d -p 8080:8888 ubuntu /bin/bash |
-P | 随机指定端口 | docker run -d -P ubuntu /bin/bash |
命令 | 作用 |
---|---|
docker pull ubuntu | 载入ubuntu镜像 |
docker run -it ubuntu /bin/bash | 启动镜像 |
docker ps docker ps -l docker ps -a | 查看已启动的容器 查看最后一次创建的容器 查看所有容器 |
docker stop wizardly_chandrasekhar | 停止容器,这里使用的是镜像的NAMES字段,使用CONTAINER_ID字段同样可以 |
docker start wizardly_chandrasekhar | 启动已经停止的容器,这里使用的是镜像的NAMES字段,使用CONTAINER_ID字段同样可以 |
docker inspect wizardly_chandrasekhar | 查看容器ubuntu的底层信息 |
docker attach 6580ce0feaf1 | -d参数使用之后,可以使用该命令进入容器(使用此命令进入容器后,推出终端会stop掉容器) |
docker exec -it 6580ce0feaf1 /bin/bash | -d参数使用之后,可以使用该命令进入容器(使用此命令进入容器后,推出终端不会stop掉容器) |
docker export 6580ce0feaf1 > ubuntu.tar | 到处到本地文件 |
docker rm -f 6580ce0feaf1 | 删除容器 |
docker commit -a “somebody”-m “something” 6580ce0feaf1 ubuntu2 | 将对ubuntu的操作保存上传到ubuntu2 |
docker小白,若有错误之处烦请批评指正
另,此文将不定期更新
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。