使用Docker
1. 使用镜像
1.1 在Docker Hub上查找镜像
我们查找一下之前博客里面,推送到Docker Hub里面的bage88/docker-demo,能看到有2个仓库,第一个就是我们上次上传的镜像。点击“Details”进入到详细页面。

1.2 拉取镜像到本地机器
在我们本地虚拟机上执行如下命令,获取该镜像:
docker pull bage88/docker-demo
1.3 了解我们获取的镜像
下载完成之后,通过docker images查看当前机器上已经有的镜像列表。

通过docker inspect IMAGE_ID或者docker inspect IMAGE_NAME查看镜像详细信息。
root@ubuntu-512mb-sfo2-01-gfw:~# docker inspect 3172d41e1212
[
{
"Id": "sha256:3172d41e12122d18216cd3179292e3840963e3d80e6ad70046c7270e85342f11",
"RepoTags": [
"bage88/docker-demo:0.0.1"
],
"RepoDigests": [
"bage88/docker-demo@sha256:26deeeb936586c34f97ece440dc2618984f887e935b5fb81856862d64e9c79a7"
],
"Parent": "sha256:05a60462f8bafb215ddc5c20a364b5fb637670200a74a5bb13a1b23f64515561",
"Comment": "",
"Created": "2017-04-26T04:58:45.421242925Z",
"Container": "50877050a5f2dc0a9c53adeba41f0760fcecca3e0bb9db3ad3f906dbdab9df32",
"ContainerConfig": {
"Hostname": "6b3797ab1e90",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.11.5-1~jessie"
],
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ADD dir:e9b5928812b2520f4eaf558074546aeffcae14070c6b3aff800660ed4a6bef65 in /usr/share/nginx/html "
],
"ArgsEscaped": true,
"Image": "sha256:05a60462f8bafb215ddc5c20a364b5fb637670200a74a5bb13a1b23f64515561",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {}
},
"DockerVersion": "17.03.1-ce",
"Author": "",
"Config": {
"Hostname": "6b3797ab1e90",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"443/tcp": {},
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.11.5-1~jessie"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"ArgsEscaped": true,
"Image": "sha256:05a60462f8bafb215ddc5c20a364b5fb637670200a74a5bb13a1b23f64515561",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": null,
"OnBuild": [],
"Labels": {}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 181557726,
"VirtualSize": 181557726,
"GraphDriver": {
"Name": "aufs",
"Data": null
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:fe4c16cbf7a4c70a5462654cf2c8f9f69778db280f235229bd98cf8784e878e4",
"sha256:c4a8b7411af46497558e12eb2237a07a9cf31b3d3f9c069d3adcf60e98a092d0",
"sha256:3f117c44afbb0a90d7c5d5db1375280fce40b81f8c3151a684cdd20192c30705",
"sha256:9d59143b04c08194884c22fc72413a22b66cb7715506ca1be2cccbc9babd19bc"
]
}
}
]
2. 使用容器
2.1 以bash shell方式运行容器
# -i :打开并保持容器的标准输入
# -t :分配pseudo-TTY终端并绑定到容器的标准输入上
docker run -t -i bage88/docker-demo /bin/bash
进入容器中,我们可以查看到我们之前复制文件到镜像里面的内容。执行命令
root@ubuntu-512mb-sfo2-01-gfw:~# docker run -t -i bage88/docker-demo /bin/bash
root@94a1f3581ebb:/# cd /usr/share/nginx/html
root@94a1f3581ebb:/usr/share/nginx/html# ls -l
total 12
-rw-r--r-- 1 root root 537 Oct 11 2016 50x.html
drwxr-xr-x 2 root root 4096 Apr 19 01:10 images
-rw-r--r-- 1 root root 669 Apr 19 01:10 index.html
root@94a1f3581ebb:/usr/share/nginx/html#
2.2 以daemon进程方式运行容器
我们常见的Web应用,应该是让容器一直运行,所以需要创建以daemon方式运行容器。
# -d :daemon方式运行容器,退出终端,程序还在运行
# -p :允许指定Host主机一个端口和容器内部一个端口进行隐射。
docker run -d -p 8010:80 bage88/docker-demo
在浏览器访问Host主机的IP+端口,结果如图所示:

2.3 查看容器
查看当前运行的所有容器
docker ps -a
2.4 删除容器
删除容器的命令:
docker rm CONTAINER_ID
参考资料
使用Docker的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
- 在docker中运行ASP.NET Core Web API应用程序(附AWS Windows Server 2016 widt Container实战案例)
环境准备 1.亚马逊EC2 Windows Server 2016 with Container 2.Visual Studio 2015 Enterprise(Profresianal要装Updat ...
- docker for mac 学习记录
docker基本命令 docker run -d -p 80:80 --name webserver nginx 运行容器并起别名 docker ps 展示目前启动的容器 docker ps -a 展 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- [原][Docker]特性与原理解析
Docker特性与原理解析 文章假设你已经熟悉了Docker的基本命令和基本知识 首先看看Docker提供了哪些特性: 交互式Shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上, ...
- 开发者的利器:Docker 理解与使用
困扰写代码的机器难免会被我们安装上各种各样的开发工具.语言运行环境和引用库等一大堆的东西,长久以来不仅机器乱七八糟,而且有些相同的软件还有可能会安装不同的版本,这样又会导致一个项目正常运行了,却不小心 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- 同步 VS 异步
同步请求资源 请求msdn上的一个页面计算页面大小 static void Main(string[] args) { string url = "https://docs.microsof ...
- 一段从TXT导入excel的py脚本
#创建文件file = Workbook(encoding='utf-8')#创建sleettableTotalTime = file.add_sheet('TotalTime')#每列给出名称tab ...
- 解决MVC中JsonResult返回 弹出文件下载对话框
设置一下返回类型为HTML TEXT就可以了 JsonResult json = Json(xxx, JsonRequestBehavior.DenyGet); json.ContentType = ...
- JSP配置了虚拟目录使用JavaBean报错
今天遇到一个很棘手的问题,在jsp文件中使用useBean,网页返回码出现了500服务器内部错误,报错信息如下: The value for the useBean class attribute w ...
- CSS学习笔记汇总
CSS语法格式:一个css规则,由一个选择器和一个格式声明语句构成 例如:h1{color:red; font-size:14px;} CSS选择器: 1.基本选择器 1)* 号选择器:通配符, ...
- C#关于AutoResetEvent的使用介绍(用AutoResetEvent实现同步)
前几天碰到一个线程的顺序执行的问题,就是一个异步线程往A接口发送一个数据请求.另外一个异步线程往B接口发送一个数据请求,当A和B都执行成功了,再往C接口发送一个请求.说真的,一直做BS项目,对线程了解 ...
- 【2017-03-30】JS-document对象
一.获取标记对象 1.document.getElementById("id"); 根据id找,最多找到一个. 2.document.getElementsByNa ...
- 字符串的模式匹配(Java实现)
字符串的模式匹配 字串的定位操作通常称做模式匹配,是各种串处理系统中最重要的操作之一.本文主要介绍两种常用的实现算法: 1.暴力匹配 2.KMP算法 1.暴力匹配 时间复杂度为O(n*m):n为主串长 ...
- 4.Java集合总结系列:Map接口及其实现
一.Map接口 Map集合的特点是:通过key值找到对应的value值,key值是唯一的,value可以重复.Map中的元素是无序的,但是也有实现了排序的Map实现类,如:TreeMap. 上面Map ...
- js实现文本框溢出文字用省略号(...)表示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...