Docker 主要的概念

Dockerfile => 用來產生 docker image 用的(介紹)

Image => 可以用來產生 docker container

Container => 實際上在 run 我們想要的 service

Docker pool (類似 git hub 的概念) https://hub.docker.com/

常用的指令:

docker command

docker images # 列出目前本地端有抓好哪些 docker image

 

docker ps # 列出目前正在運行中的 docker container

 

docker ps -a # 列出目前本地端一共有哪些 docker container (包含已經停止運行的)

 

docker pull [image_name:version] # 從 docker hub 下載一個特定版本的 docker image

 

docker pull [image] # 從 docker hub 下載最新版本的 docker image

 

docker run [image] # 從 docker image 建立一個 docker container 並且運行

 

docker start [container] # 啟動 docker container

 

docker stop [container] # 停止 docker container

例如

# 將 mongo db 版本 3.3 的 docker image 給抓下來

 

$ docker pull mongo:3.3

# 將 mongo db 最新版本的 docker image 給抓下來

 

$ docker pull mongo

pull Image 的狀態

pajace@ubuntu-server:~/mongo_db/3.2$ docker pull mongo:3.1

3.1: Pulling from library/mongo

8dddc0afbe0a: Downloading [====> ] 3.06 MB/37.19 MB

a3ed95caeb02: Download complete

32eed1053be0: Download complete

da7450003e70: Download complete

da146c968d58: Downloading [===============> ] 365.1 kB/1.168 MB

75ce455f57bd: Waiting

f1fac483f3f6: Waiting

dc616cc81177: Waiting

2b7ade65468e: Waiting

03913f2c5b05: Waiting

當完成的時候

pajace@ubuntu-server:~/mongo_db/3.2$ docker pull mongo:3.1

3.1: Pulling from library/mongo

8dddc0afbe0a: Pull complete

a3ed95caeb02: Pull complete

32eed1053be0: Pull complete

da7450003e70: Pull complete

da146c968d58: Pull complete

75ce455f57bd: Pull complete

f1fac483f3f6: Pull complete

dc616cc81177: Pull complete

2b7ade65468e: Pull complete

03913f2c5b05: Pull complete

Digest: sha256:bb3388e777b5d42c3d51370d2dcf2b1bd045b7169cf5e9373d6ef3bd56d9e78a

Status: Downloaded newer image for mongo:3.1

抓下來之後可以用 docker images 可以列出目前有哪些 Image

顯示目前有哪些 image 在 local 端

pajace@ubuntu-server:~/mongo_db/3.2$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mongo-express latest 11b1889462fa 3 weeks ago 252.3 MB

mongo 3.3.6 83370cc968c1 3 weeks ago 342.9 MB

mongo 3.2 4244d33b9b0e 3 weeks ago 313.1 MB

接下來就讓我們來建立一個 Container 並執行它,會用到的參數如下:

-d 讓這個 container 背景執行模式
-v 掛資料夾
-p 綁定 container 的 port 到 localhost
--name 設定一個名字給這個 container
... 當然還有很多
請參考
這裡

建立並執行 mongodb docker container

# 建立並運行 mongodb docker container

 

$ docker run -d --name mongodb_3.3 -p 27017:27017 mongo:3.3.6

078e7112aa59050297e4f2ab5b3fa322e91a217226dece11aafc06f521e6ab5f

 

# 建立 mongo-express 並且連結到
剛剛建立的 mongodb docker container

 

$ docker run -d --name mongodb_web_336 --link mongodb_3.3:mongo -p 8081:8081 mongo-express

ac7f52660d4b661e14fb832ae2f8655702b8410b56de7d7f2bb74e2196898d4b

 

# 查看目前正在運行的 docker container

 

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

ac7f52660d4b mongo-express "tini -- node app" 3 seconds ago Up 2 seconds 0.0.0.0:8081->8081/tcp mongodb_web_336

078e7112aa59 mongo:3.3.6 "/entrypoint.sh mongo" 2 minutes ago Up 2 minutes 0.0.0.0:27017->27017/tcp mongodb_3.3

 

Windows 或 Mac 需要 port mapping, Ubuntu 上則不用

因為在 Windows 上,Docker 是 run 在一個 virtual machine 上面,所以需要做一下 port mapping, 好將 virtual machine 上的 port 導到 localhost 上面來

 

Unfortunately, the mechanism VirtualBox uses to share folders between the host system and the Docker container is not compatible with the memory mapped files used by MongoDB (see vbox bug, docs.mongodb.org and related jira.mongodb.org bug). This means that it is not possible to run a MongoDB container with the data directory mapped to the host.

因此在 Windows 或 Mac 上無法使用 -v /some_path/:/data/db 這個參數

當我們使用 docker run 建立並執行一個 container 之後,就可以使用 docker start 或 docker stop 來啟動或停止這個 contaner, 也可以任意的切換目前正在使用的 MongoDB.

啟動 container

$ docker stop BookServerMongoDB_3.3

$ docker start BookServerMongoDB_3.3

 

 

来自:http://mycodetub.logdown.com/posts/737534-use-mongodb-docker-image

使用 mongodb 的 Docker Image 快速上手系列 lab的更多相关文章

  1. 快速上手系列-C语言之指针篇(一)

    快速上手系列-C语言之指针篇(一) 浊酒敬风尘 发布时间:18-06-2108:29 指针的灵活运用使得c语言更加强大,指针是C语言中十分重要的部分,可以说指针是C语言的灵魂.当然指针不是万能的,但没 ...

  2. MongoDB数据库 5分钟快速上手

    安装 本次安装使用docker镜像,安装无障碍,一行命令即可解决 # 安装镜像并启动 可以自行修改命令中的参数 ## 账户 tanoak 密码 123123 ## -p 27018:27017 映射端 ...

  3. SpringBoot快速上手系列01:入门

    1.环境准备 1.1.Maven安装配置 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件. 下载Maven可执行文件 cd /usr/local ...

  4. CRL快速开发框架系列教程十二(MongoDB支持)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  5. MongoDB快速上手

    1.  MongoDB简介 MongoDB是一个跨平台的基于Key_Value键值对形式保存数据的NoSQL文档类型数据库. NoSQL(not only sql)数据库,泛指非关系型数据库. 1.1 ...

  6. 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker

    如果想在一台电脑上搭建一个多节点的Hadoop集群,传统的方式是使用多个虚拟机.但这种方式占用的资源比较多,一台笔记本能同时运行的虚拟机的数量是很有限的.这个时候我们可以使用Docker.Docker ...

  7. 必会技能!Docker助你快速上手玩转HBase!

    前言:本文主要讲述了如何使用Docker快速上手HBase,省去繁杂的安装部署环境,直接上手,小白必备.适合HBase入门学习及简单代码测试. 1. Docker 安装 参考地址: https://y ...

  8. 【新手】【十分钟上手系列-一】快速开发vue插件

    2018.6.28 在这浮躁的前端娱乐圈,不会三两个新框架都觉得自己不是前端.哦,不是我说的.说到底.原生才是重中之重.加油. vue用了大半年多,一直在用ui库,插件等,没有自己的东西. 想想连个v ...

  9. [Android开发学iOS系列] 快速上手UIKit

    快速上手iOS UIKit UIKit是苹果官方的framework, 其中包含了各种UI组件, window和view, 事件处理, 交互, 动画, 资源管理等基础设施支持. 按照前面的介绍, 用U ...

随机推荐

  1. Wingdings 2 符号编码对照表

     http://blog.csdn.net/linux7985/article/details/5030754 符号  编码 HTML 代码  符号  编码 HTML 代码 ! ! " &q ...

  2. Revit Family API 添加材质参数设置可见性

    start //添加类型 void AddType(FamilyManager familyMgr, string name, double w, double d) {     FamilyType ...

  3. DbContextScope,A simple and flexible way to manage your Entity Framework DbContext instances,by mehdime

    DbContextScope A simple and flexible way to manage your Entity Framework DbContext instances. DbCont ...

  4. 完美.PCK文件不完全详解

    building.pck:建筑物 configs.pck:配置文件interface.pck:玩过魔兽的都晓得这个是什么~interface顾名思义·facedata.pck,人物脸型,细节.不要改, ...

  5. SQLCE使用

    Windows Phone的本地数据库SQL Server CE是7.1版本即芒果更新的新特性,所以你要在应用程序中使用SQL Server CE数据库必须使用Windows Phone 7.1的AP ...

  6. [官方摘要]Setup And Configuration memcached with Tomcat

    原文地址:https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration SetupAndConfigur ...

  7. HTML5之SVG

    1.背景 SVG是Scalable Vector Graphics的缩写,意为可缩放矢量图形.1998年,万维网联盟成立了一个工作组,研发一种通过 XML来表现矢量图形的技术——SVG!由于SVG也是 ...

  8. Android 实时视频编码—H.264硬编码

    from://http://www.cnblogs.com/skyseraph/archive/2012/04/04/2431771.html 1  硬编码 & 软编码 硬编码:通过调用And ...

  9. linux内核netfilter模块分析之:HOOKs点的注册及调用

    转自;http://blog.csdn.net/suiyuan19840208/article/details/19684883 -1: 为什么要写这个东西?最近在找工作,之前netfilter 这一 ...

  10. 无法上外网, ping网关ping不通的解决——arp命令

    转自:http://jingyan.baidu.com/article/3c48dd34873909e10be35894.html 转自:http://man.linuxde.net/arp 用来管理 ...