使用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介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
随机推荐
- 通讯录--(适配iOS7/8/9)
导入库#import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> #pragma m ...
- Spring Boot启动过程(六):内嵌Tomcat中StandardHost与StandardContext的启动
看代码有助于线上出现预料之外的事的时候,不至于心慌... StandardEngine[Tomcat].StandardHost[localhost]的启动与StandardEngine不在同一个线程 ...
- PHP后台程序员工作到如今的一点心得
一个项目的建立,一开始一定要有需求文档,没有需求文档的项目注定会改来改去.还被骂的很惨.要时刻牢记一句话:口说无凭,有文档为证. 第一:开发语言的选择,PHP,当然还有JAVA,.NET你做的项目当然 ...
- JavaScript数据结构——队列的实现
前面楼主简单介绍了JavaScript数据结构栈的实现,http://www.cnblogs.com/qq503665965/p/6537894.html,本次将介绍队列的实现. 队列是一种特殊的线性 ...
- Python的.py文件打包成exe可执行文件
前几天做了几个简单的爬虫python程序,于是就想做个窗口看看效果. 首先是,窗口的话,以前没怎么接触过,就先考虑用Qt制作简单的ui.这里用前面sinanews的爬虫脚本为例,制作一个获取当天sin ...
- 如何javascript获取css中的样式
obj.style.height只能获取行间样式,但是我们要怎么获取写在css文件中的样式呢? 首先我们要用一个新的方法currentStyle.这个方法由current和style两个单词组成意思是 ...
- MapReduce简介以及详细配置
1.MapReduce(一个分布式运算框架)将数据分为数据块,发送到不同的节点,并行方式处理. 2.NodeManager和DataNode在一个节点上,程序与数据在一个节点. 3.内容分为两个部分 ...
- RMQ问题(线段树算法,ST算法优化)
RMQ (Range Minimum/Maximum Query)问题是指: 对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在[i,j]里的最小(大)值 ...
- 转载八个最佳Python IDE
八个最佳Python IDE 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Python是一种功能强大.语言简洁的编程语言.本文向大家推荐8个适合Pyt ...
- JavaWeb之session
Session是服务器端技术 利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自 ...