Docker入门指南


地址:docker入门指南

更换国内镜像源

docker store地址默认是在国外,下载速度很慢,自行更换国内docker加速地址。

名词解释

image: 镜像
containers: 容器
docker-machine: docker虚拟主机
docker store: docker存储云

术语

Image 和 Container
Image可以理解为一个系统镜像,Container是Image在运行时的一个状态。
如果拿虚拟机作一个比喻的话,Image就是关机状态下的磁盘文件,Container就是虚拟机运行时的磁盘文件,包括内存数据。

Image 是系统一般来源是官方资源,或者比较稳定成熟的资源
Container 是启动系统后的运行时环境, 包括磁盘 + 运行的其他软件 + 环境配置他们之间可以互相转换。

docker daemon
主机上运行的后台服务管理构建,运行和分发Docker容器

docker client
命令行工具,允许用户与Docker守护进程交互

docker store
docker images的注册地址,可以在其中找到受信任的企业级容器,插件和Docker版本。相当于docker的仓库。

运行docker HelloWorld
docker run hello-world

拉取docker cloud项目
docker pull alpine
docker run hello-world 背后也做了 docker pull 的动作去docker服务器上面下载。

提示:如果本地不存在这个image的话,如果本地已经存在,就不去docker store上面下载了。

查看所有的docker镜像
docker images

执行 docker 的命令
docker run alpine ls -l

进入一个docker
docker run -it alpine /bin/sh
exit退出

查看当前运行的 docker
docker ps

查看全部 docker
docker ps -a

获取 docker run 参数列表
docker run --help

查看一个docker的信息
docker inspect alpine

暂停 docker 容器
docker stop xxx

xxx 为 docker容器的名字 或CONTAINER ID

删除一个docker容器
docker rm xxx

-f 运行中的docker容器,需要先暂停再删除,或者直接加此参数

docker rm -f xxx

基本的docker web项目
从docker store获取依赖的docker image

// docker pull dockersamples/static-site
docker run -d dockersamples/static-site

-d 表示后台运行,不加-d,就像Tomcat一样,无法再在当前命令窗口操作了,默认是flase。

detached 模式运行docker
docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site

-d 独立于当前命令窗口运行

-P 将所有暴露的docker容器端口,映射到真实主机上面的随机端口

-p 将当前主机上面的指定端口,映射到docker容器的一个端口:-p 8888:80 将当前主机的8888端口映射到docker容器的80端口。

--name 指定容器的名称

-e 可以传递环境变量给docker容器

AUTHOR 环境变量的名称和值,可以自己任意指定

查看docker容器映射的端口
docker port [容器名 --name 指定的值]

$ docker port static-site
443/tcp -> 0.0.0.0:32772
80/tcp -> 0.0.0.0:32773

使用localhost:[docer80的本地映射端口]访问:
http://localhost:32769/

创建docker主机

列出所有的docker主机
docker-machine ls

获取docker主机的IP地址
docker-machine ip default

可能出现错误:
Host does not exist: "default"

解决:
docker-machine create default

如果继续报错,Mac需要安装:VirtualBox
https://www.docker.com/products/docker-toolbox

Mac
docker-machine create -d virtualbox default

Windows
需要在添加删除程序里面开启hyperv,只有专业版的Windows才有,家庭版不存在此功能。

docker-machine create --driver hyperv vm
https://docs.docker.com/machine/drivers/hyper-v/

安装完以后重启docker

Linux

sudo service docker restart
Mac 和 Windows 图形化界面手动重启

然后继续创建:
docker-machine create default

名字可以随便起,不一定要叫default
不报错任何错误,如:

Running pre-create checks…
Error with pre-create check: "exit status 126"

说明安装成功:

Running pre-create checks…
Creating machine…
(default) Copying
(default) Creating VirtualBox VM…
(default) Creating SSH key…
(default) Starting the VM…
(default) Check network to re-create if needed…
(default) Found a new host-only adapter: "vboxnet0"
(default) Waiting for an IP…
Waiting for machine to be running, this may take a few minutes…
Detecting operating system of created instance…
Waiting for SSH to be available…
Detecting the provisioner…
Provisioning with boot2docker…
Copying certs to the local machine directory…
Copying certs to the remote machine…
Setting Docker configuration on the remote daemon…
Checking connection to Docker…
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

然后再次查看docker主机:
docker-machine ls

看到NAME为default的主机,说明成功。

再次输入:docker-machine ip default

得到一个主机的IP

192.168.99.100

进入docker主机
docker-machine ssh default

看到命令行前缀改变,表示成功

[email protected]:~$

从docker store下载并运行
dockersamples/static-site:

docker run --name static-site -e AUTHOR="Your Name" -d -P dockersamples/static-site

然后查看docker主机里面容器的映射端口,使用docker主机的ip + 主机内容器的端口就可以访问到主机内的容器服务:

查看容器映射端口
docker port static-site
443/tcp -> 0.0.0.0:32768
80/tcp -> 0.0.0.0:32769
http://192.168.99.100:32769/

原文地址:https://www.cnblogs.com/Tanyboye/p/9092873.html

时间: 2024-07-28 23:32:38

Docker入门指南的相关文章

docker入门指南(转载)

关于 docker 今天云平台的同事提到, 现在的运维就是恶性循环, 因为大家都在申请机器, 显然的是, 大家申请机器都是按照自己的峰值申请的, 而为了保证突发状况, 如 ddos, 双11 等, 申请者甚至会两倍于自己的峰值去估算自己的服务. 由于资源紧张, 云平台会对其削减, 因为云平台也要为公司减少运维成本, 可能原来申请10台机器最后变成给5台, 而最终有经验的申请者会直接申请20台, 然后等削减成10台(正如鲁迅所说, 如果不说把屋顶掀了, 中国人根本不会同意在屋里装个窗户) 申请容易

Docker入门教程(一)介绍

http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了Docker的基础概念以及Docker的安装. Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere(译者注:这个就不翻译了,翻译出来味道就没了)”.本文是Flux7的Docker系列教程的第一部分.请和这

Microsoft Orleans 之 入门指南

Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码地址:https://github.com/dotnet/orleans 简介:Orleans 框架可以构建大规模.高并发.分布式应用程序,而不需要学习专业分布式以及并发知识框架.它是由微软研究和设计应用于云计

学习 Docker - 入门

Docker简介 一种虚拟容器技术. 一种虚拟化分方案: 操作系统级别的虚拟化: 只能运行相同或相似内核的操作系统: 依赖与linux内核特性:Namespace和Cgroups(Control Group) 虚拟机技术和容器技术最大的区别就是对资源的占用. Docker目标 提供简单轻量的建模方式 职责的逻辑分离 快速高效的开发生命周期 鼓励使用面向服务的架构 Docker使用场景 使用Docker容器开发.测试.部署服务 创建隔离的运行环境 搭建测试环境 构建多用户的平台即服务(PaaS)基

斌哥的 Docker 进阶指南

过去的一年中,关于 Docker 的话题从未断过,而如今,从尝试 Docker 到最终决定使用 Docker 的转化率依然在逐步升高,关于 Docker 的讨论更是有增无减.另一方面,大家的注意力也渐渐从 "Docker 是什么"转移到"实践 Docker"与"监控 Docker"上. 本文转自刘斌博文「如何选择 Docker 监控方案 」,文中刘斌从技术的角度深入解释了 Docker 监控的数据采集原理,介绍了现有开源的监控方案,以及能够对 D

Quartz.NET简介及入门指南

Quartz.NET简介 Quartz.NET是一个功能完备的开源调度系统,从最小的应用到大规模的企业系统皆可适用. Quartz.NET是一个纯净的用C#语言编写的.NET类库,是对非常流行的JAVA开源调度框架 Quartz 的移植. 入门指南 本入门指南包括以下内容: 下载 Quartz.NET 安装 Quartz.NET 根据你的特定项目配置 Quartz 启动一个样例程序 下载和安装 你可以下载 zip 文件或使用 Nuget 程序包.Nuget 程序包只包含 Quartz.NET 运

Java程序员的Golang入门指南(上)

Java程序员的Golang入门指南 1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如果有人说X语言比Y语言好,两方的支持者经常会激烈地争吵.如果你是某种语言老手,你就是那门语言的"传道者",下意识地会保护它.无论承认与否,你都已被困在一个隧道里,你看到的完全是局限的.<肖申克的救赎>对此有很好的注脚: [Red] These walls are funny.

【翻译Autofac的帮助文档】1.入门指南

[写在前面]尝试做完一件工作之外自我觉得有意义的一件事,那就从翻译Autofac的帮助文档吧. 入门指南 将Autofac集成你的应用程序的步骤通常很简单,一般是: 时刻以IOC(控制反转)的思想来规划你的应用程序 在你的Porject中添加Autofac引用 按照如下步骤设计应用程序的启动环节 创建一个ContainerBuilder 向ContainerBuilder注册组件 通过ContainerBuilder的Build()方法获得Container(后续需用到) 在应用程序运行环节时,

Markdown——入门指南

导语: Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简单.常用的标记符号也不超过十个,这种相对于更为复杂的 HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果. Ulysses for Mac 一,认识 Markdown 在刚才的导语里提到,Markdown 是一种用来写作的轻量级「标记语言」