博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker
阅读量:7276 次
发布时间:2019-06-29

本文共 1994 字,大约阅读时间需要 6 分钟。

hot3.png

1. 安装

https://www.vultr.com/docs/installing-docker-on-ubuntu-14-04

2. 入门

http://bg.biedalian.com/2014/11/20/docker-start.html

http://cn.soulmachine.me/blog/20131026/

https://docs.docker.com/mac/

3.网络和数据

https://docs.docker.com/engine/userguide/containers/networkingcontainers/

4.mongo+nodejs

http://ifdattic.com/how-to-mongodb-nodejs-docker/

这里有2种方案,一个是自己创建mongo和nodejs的镜像,还有一个直接从官方库下载mongo和node官方镜像。

另一种端口映射的方法是在dockerfile中使用expose指令,然后在运行镜像的时候使用-P参数自动添加端口映射

注:node官方镜像版本是6的,要用4的需要手动制作node镜像:

这里将mongo和node分开部署,mongo在一个独立的容器中。

https://hub.docker.com/_/mongo/

启动一个容器来提供mongo 服务

docker run -v "$(pwd)":/data --name mongo -d mongo mongod --smallfiles

启动app容器,create a container which has all the required data mounted and is linked to mongo container:

docker run -it --name node -v "$(pwd)":/data --link mongo:mongo -w /data -p 8082:8082 node bash

这里的-p 是端口映射,讲container的8082端口映射到host的8082端口以便从外部访问container服务

这里会存在连接数据库问题,因为app默认连接的是本地的数据库,需要设置连接字符串,让app连接外部的mongo服务:

db:'mongodb://mongo:27017/moveshow'

It’s also possible to run the application in container directly:

docker run --name nodeapp -v "$(pwd)":/data --link mongo:mongo -w /data/hw3-2and3-3/blog -p 8082:8082 -d node node app.js

5. docker 工作流

在项目工程目录下创建Dockerfile及.dockerignore文件

Dockerfile用于创建镜像文件,.dockerignore用于排除不需要拷贝到容器中得文件。

Dockerfile首先是创建环境,必须要安装的:nodejs , npm

可选安装的:bower grunt等

设置环境变量: 包括NODE_ENV等

拷贝文件到工作目录下:COPY . /app/www

为工作目录创建volume用于持久化数据:

VOLUME ["app/www"]

最后执行命令启动进程:

CMD ["nodejs", "server.js"]

6. mongodb 认证

mongodb本地访问一般不需要认证,外部访问除了指定用户名密码之外还需要指定目标数据库,也就是说用户权限是和目标数据库绑定的

7 一些常用的命令及技巧

dockerfile中如果希望每一条指令不使用cache只需要为该条指令加一个注释就可以了。

 

8. daocloud容器云

8.1 数据持久化

daocloud提供数据库服务和volume实现数据持久化,前者用于数据库数据持久化,后者用于用户数据持久化。

创建一个mongodb服务,并绑定至app,在app中可以使用环境变量连接数据库,包括用户名密码及数据库实例名。

可以使用mongo-express对数据库实例进行管理;

volume用来存储用户数据,需要和app绑定,并设定volume映射路径,容器中指定的路径会映射到volume

9. 创建基础镜像

官方镜像太多,好用的找不到,干脆从0开始自己创建一个。

基于ubuntu15.1: ubuntu:wily-20160526

9.1 nodejs

nodejs装V4版本的:

9.2 ffmpeg

 

 

转载于:https://my.oschina.net/u/584525/blog/680478

你可能感兴趣的文章
ArcGIS 基础4-删除数据
查看>>
字符串长度函数strlen()
查看>>
QQ文件没有读取权限,60017导致QQ无法登陆的终极解决办法
查看>>
html入门(块级元素——列表标签)
查看>>
JavaScript基础知识目录
查看>>
mybatis关于OpenSessionInview这个filter还有创建一个mybatis工具类
查看>>
记第一次写博客
查看>>
绝对定位元素被遮挡
查看>>
用Python监听鼠标和键盘事件
查看>>
Interface和Abstract class区别
查看>>
[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动
查看>>
内存溢出和内存泄漏
查看>>
iis7.5 aspx,ashx的mime类型
查看>>
unity纯粹物理驱动方式
查看>>
关于前端设置cookie
查看>>
日常工作记录
查看>>
浅谈WebService的调用
查看>>
VBA在Excel中的应用(三)
查看>>
Java基础知识1
查看>>
ps技巧
查看>>