1. 程式人生 > >Docker學習筆記-搭建2048小遊戲和nginx伺服器

Docker學習筆記-搭建2048小遊戲和nginx伺服器

以下例項操作基於rhel7.2

一.Docker 簡介

Docker 是一個開源的應用容器引擎,主要利用 linux 核心 namespace 實現沙盒隔離,用cgroup 實現資源限制。
Docker 支援三種不同的映象層次儲存的 drivers:aufs、devicemapper、btrfs ;
Aufs:AUFS (AnotherUnionFS) 是一種 Union FS, 簡單來說就是支援將不同目錄掛載到同一個虛擬 文 件 系 統 下 (unite several directories into a single virtual filesystem) 的 文 件 系 統 。 Aufsdriver 是 docker 最早支援的 driver,但是 aufs 只是 linux 核心的一個補丁集而且不太可以會被合併加入到 linux 核心中。但是由於 aufs 是唯一一個 storage driver 可以實現容器間共享可執行及可共享的執行庫, 所以當執行成千上百個擁有相同程式程式碼或者執行庫時時候,aufs是個相當不錯的選擇。
Device Mapper:Device mapper
是 Linux 2.6 核心中提供的一種從邏輯裝置到物理裝置的對映框架機制,在該機制下,使用者可以很方便的根據自己的需要制定實現儲存資源的管理策略 ( 詳見:http://www.ibm.com/developerworks/cn/linux/l-devmapper/index.html) 。
Device mapper driver 會建立一個 100G 的簡單檔案包含你的映象和容器。每一個容器被限制 在 10G 大 小 的 卷 內 。 ( 如 果 想 要 調 整 , 參考 :http://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/ 。 )
你可以在啟動 docker daemon 時用引數-s 指定 driver:docker -d -s devicemapper ;
Btrfs:Btufs driver
在 docker build 可以很高效。但是跟 devicemapper 一樣不支援裝置間共享儲存(文件裡是 does not share executable memory between devices)。

在 沒 有 aufs 支 持 的 linux 發 行 版 本 上 (CentOS,opensuse 等 ) 安 裝 docker 可 能 就 使 用 了devicemapper driver。

二.Docker安裝

                 下載docker 的rpm包

                 

                 

三.Docker容器管理

    1.容器(container)和映象(images)的區別示意圖

       要點:容器=映象+讀寫層

    2.Docker容器檔案系統

        

    3.Docker命令解釋

# docker run -it --name vm1 ubuntu bash    建立容器
# docker ps -a           檢視容器程序
# docker attach vm1      連線容器
# docker top vm1        檢視容器程序
# docker logs vm1 檢視容器指令輸出 -f 引數可以實時檢視
# docker inspect vm1 檢視容器詳情
# docker stats vm1 檢視容器資源使用率
# docker diff vm1 檢視容器修改
# docker run -d --name vm1 ubuntu bash -c "while true; do echo westos; sleep 1; done"    後臺執行
# docker stop vm1 停止容器
# docker start vm1 啟動容器
# docker kill vm1 強制幹掉容器
# docker restart vm1 重啟容器
# docker pause/unpause vm1  暫停/恢復容器
# docker rm vm1  刪除容器
# docker export vm1 > vm1.tar   匯出容器
# docker import vm1.tar image   匯入容器為映象 image


  4.例項

        (1).搭建2048小遊戲

# docker load -i game2048.tar  #匯入映象
# docker inspect game2048       #此命令用來檢視映象詳細資訊
# docker run -d  -p 8000:80 --name game game2048  #執行小遊戲,並將容器的80埠對映到本機的8090端庫執行

          測試:在本機瀏覽器:172.25.254.50:8090

       (2).搭建nginx伺服器

[[email protected] 2-26-文件-Docker]# docker load -i nginx.tar       #匯入映象
d8bd0657b25f: Loading layer 130.9 MB/130.9 MB
a582cd499e0f: Loading layer 1.024 kB/1.024 kB
f5a1ef78853b: Loading layer 1.024 kB/1.024 kB
605083c53cc5: Loading layer 1.024 kB/1.024 kB
c95d1af3960d: Loading layer 67.97 MB/67.97 MB
0a410ba58143: Loading layer 3.584 kB/3.584 kB
fb6fc13654c9: Loading layer 1.024 kB/1.024 kB
36b0adefb2f3: Loading layer 1.024 kB/1.024 kB
[[email protected] 2-26-文件-Docker]# docker images             #檢視映象
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              af4b3d7d5401        23 months ago       190.5 MB

#瞭解nginx容器的配置:
[[email protected] 2-26-文件-Docker]# docker run -it nginx bash    
[email protected]:/# find / -name nginx  
/etc/default/nginx
/etc/init.d/nginx
/etc/logrotate.d/nginx
/etc/nginx
/usr/lib/nginx
/usr/sbin/nginx
/usr/share/doc/nginx
/usr/share/nginx
/var/cache/nginx
/var/log/nginx
[email protected]:/# cd /etc/nginx/conf.d/    
[email protected]:/etc/nginx/conf.d# ls
default.conf                                    #nginx的配置檔案
[email protected]:/etc/nginx/conf.d# cat default.conf     
[[email protected] 2-26-文件-Docker]# docker run -d --name nginxserver nginx       #執行nginx容器並起名為nginxserver   
b10bad72981d6b26c2fbcbf21e43eb35d7daa128b290ab110938e5236571b74c
[[email protected] 2-26-文件-Docker]# docker kill `docker ps -q`
b10bad72981d
1ee3a2a4fa40

[[email protected] 2-26-文件-Docker]# docker rm `docker ps -aq`
b10bad72981d
1ee3a2a4fa40
[[email protected] 2-26-文件-Docker]# docker run -d --name web -p 80:80 -v /tmp/docker/web/:/wrh -v /tmp/docker/vhost.conf:/etc/nginx/conf.d/vhost.conf nginx
4b4b297ed6a00f68b5cc2fdc92d1cb446d28da6f46e5083917759fabae7b3c78
[[email protected] 2-26-文件-Docker]# vim /tmp/docker/web/index.html


相關推薦

Docker學習筆記-搭建2048遊戲nginx伺服器

以下例項操作基於rhel7.2一.Docker 簡介Docker 是一個開源的應用容器引擎,主要利用 linux 核心 namespace 實現沙盒隔離,用cgroup 實現資源限制。Docker 支援三種不同的映象層次儲存的 drivers:aufs、devicemappe

Docker學習筆記-mysql映象的使用外網訪問

1.      Pull mysql 執行命令docker pull mysql 2.      建立mysql容器 docker run --name

Python學習筆記_Pygame(基礎學習 pie遊戲 方塊碰撞變色)

下載Python3.6.5對應的pygame-1.9.4-cp36-cp36m-win32.whl檔案在PIP中安裝 1.畫弧 import pygame from pygame import * import sys import math pygame.init()

【python學習】使用python寫一個2048遊戲

ast stc 遊戲 多少 wan nbsp 小遊戲 效果 參考 個人博客:jerwang.cn 沒有參考其他代碼,效果圖: 話不多少,源代碼: https://github.com/jerustc/Python/blob/master/2048.py【python學

Docker學習筆記2-mysql鏡像的使用外網訪問

雲計算 Docker 1. Pull mysql執行命令docker pull mysql2. 創建mysql容器docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql創建完成後,查看容器運行狀態可以看到m

Docker 學習筆記(一):Docker 基本命令 用 Dockerfile build 一個 JDK 映象

本文件為學習筆記,部分內容將持續更新。 注:本人信仰用最簡單的方式去做一些事,怎麼簡單怎麼來,也許不求甚解。 Docker 基本命令 docker version 獲取 docke

Docker學習筆記Docker私有倉庫搭建

和Mavan的管理一樣,Dockers不僅提供了一箇中央倉庫,同時也允許我們使用registry搭建本地私有倉庫。 使用私有倉庫有許多優點: 節省網路頻寬,針對於每個映象不用每個人都去中央倉庫上面去下載,只需要從私有倉庫中下載即可; 提供映象資源利用,針對

Docker學習筆記Docker 基礎用法命令幫助

Usage of docker: --api-enable-cors=false Enable CORS headers in the remote API # 遠端 API 中開啟 CORS

Docker 學習筆記Docker簡介安裝

一、Docker 簡介 Docker 兩個主要部件:

docker學習筆記16:Dockerfile 指令 ADD COPY介紹

一、ADD指令 ADD指令的功能是將主機構建環境(上下文)目錄中的檔案和目錄、以及一個URL標記的檔案 拷貝到映象中。 其格式是: ADD  源路徑  目標路徑 如: #test FROM ubuntu MAINTAINER hello ADD test1.txt t

Docker學習筆記(一):使用docker搭建LNMP環境

公司使用docker部署伺服器環境,之前沒有接觸過,於是使用阿里雲伺服器學習使用docker,記錄一下學習過程。首先了解Docker,查看了很多網上的資料,說下自己的理解,docker與linux虛擬機器類似,是一個用來把打包好的環境映象放在容器中執行的工具(引擎),dock

Docker 學習筆記_安裝使用MongoDB

虛擬機 http .com 端口映射 學習筆記 alt 存儲 鏡像 mage 一、準備 1、宿主機OS:Win10 64 2、虛擬機OS:Ubuntu18.04 3、賬號:docker 二、安裝 1、搜索MongoDB鏡像

Docker學習筆記_安裝使用Zookeeper

ash http rest zook info run 4.4 win png 一、準備   1、宿主機OS:Win10 64位 2、虛擬機OS:Ubuntu18.04 3、賬號:docker 二、安裝 1、搜索鏡像

DOCKER 學習筆記8 Docker Swarm 叢集搭建

前言 在前面的文章中,已經介紹如何在本地通過Docker Machine 建立虛擬Docker 主機,以及也可以在本地Windows 建立虛擬主機,也是可以使用的。這一節,我們將繼續學習 Docker 三劍客之一 : Docker Swarm Docker Swarm Docker Swarm 是Docker

docker 學習筆記

名稱 ted lte settings 刪除 學習 pat doc mem   1.查詢dockers 某個容器的ip地址。 [[email protected]/* */ ~]# docker inspect --format=‘{{.NetworkSett

【Unity 3D】學習筆記三十:遊戲元素——遊戲地形

nbsp 3d遊戲 strong 直觀 分辨率 == 摩擦力 fill 世界 遊戲地形 在遊戲的世界中,必然會有非常多豐富多彩的遊戲元素融合當中。它們種類繁多。作用也不大同樣。一般對於遊戲元素可分為兩種:經經常使用。不經經常使用。經常使用的元素是遊戲中比較重要的元素。一

2048遊戲主要算法實現

mes 方向 時間限制 上下左右 print ron weight color ges http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=4681 4681: 2

soapUI學習筆記---斷言的使用

cnblogs 輸入 .cn cas 點擊 使用 tca 種類 選中 轉自:http://www.cnblogs.com/duimianyoushan/p/4274791.html 以下示例在soapUI 4.5中進行。剛開始學soapUI的使用,記錄下以免忘記 1.創建p

docker學習筆記

不一致 規模 操作 崩潰 快速 新的 內存 並發 發熱 一:docker理解 docker的通俗化定義:docker相當於一個容器,你可以把任何程序放到docker中。 它是一個軟件容器化平臺。 二:docker思想 集裝箱:如果只是單純地把項目

Spring+SpringMVC+MyBatis深入學習搭建(十四)——SpringMVCMyBatis整合

文件拷貝 conf lips glib ide doc from ive body 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面講到:Spring+SpringMVC+MyBatis深入學習及搭建(