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. FileReader读取中文txt文件编码丢失问题(乱码)(转)

    有一个UTF-8编码的文本文件,用FileReader读取到一个字符串,然后转换字符集:str=new String(str.getBytes(),"UTF-8");结果大部分中文 ...

  2. Microsoft实现的IOC DI之 Unity 、Service Locator、MEF

    这几个工具的站点 Microsoft Unity  http://unity.codeplex.com Service Locator http://commonservicelocator.code ...

  3. [Go] md5 加密 示例

    package main import ( "crypto/md5" "encoding/hex" "fmt" "io" ...

  4. CentOS 7 修改时区

    转自:http://blog.csdn.net/robertsong2004/article/details/42268701 本文转载至:http://mathslinux.org/?p=637 L ...

  5. CCLabelAtlas的宽度为奇数时的显示bug

    遇到一个很郁闷的bug,CCLabelAtlas设置文字内容在ipad上和android上正常,就只有iphone怎么显示都不正常.后来把它宽度 + 1,然后就正常了.发现以前宽度设置为21px.23 ...

  6. Docker存出载入镜像

    镜像的存出和载入 如果你的生产环境不能连通互联网,而你又希望从互联网上获取镜像.你就需要借助 docker save命令,可以将镜像导出为 tar 文件.使用 docker load 命令,可以将ta ...

  7. Asp.Net Mvc Action过滤器(二)

    在Mvc中为Action添加过滤器,有两种方式, 一.使用ActionFilterAttribute,简单方式,同时支持Result的过滤处理, 1.可以为空,支持的重写:OnActionExecut ...

  8. Java 正则表达式(精华)

    英文:Jakob Jenkov译文:严亮链接:ifeve.com/java-regex/ Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达 ...

  9. [转]Hive安装及使用攻略

    转 : http://blog.fens.me/hadoop-hive-intro/

  10. Guava BiMap AbstractBiMap

    BiMap BiMap是一个结构,他定义了一个Map结构,代表这个Map的key和value都具有唯一性, 并且可以生成相互联系的反向视图, 反向视图的数据会随着本体BiMap的变更而变更 /* * ...