之前總聽別人說要集成環境到Docker中,但一直也沒有心情去看看Docker是什么,只知道是個沙箱一樣的容器。今天抽了點時間鼓搗一下!
Docker 的解釋我就不多說了,baidu上一抓一大把。我記錄一下自己遇到的坑。
首先我用的是京東云Ubuntu16.04
內核如果過低的話,需要升級一下內核。我這里就不需要了。
下載和安裝
docker的命令我也不是很熟悉,就不全寫了,只記錄幾個用到的
pull 是從遠程庫中拉取鏡像到本地
push 是提交本地鏡像到倉庫
images 列出本地所有的鏡像
search [鏡像名字:TAG] 查找鏡像
login 登錄到某倉庫
ps 列出當前正在運行的docker容器 -a 全部
run 運行 其中 -t 帶有控制臺可進入 -d 后臺運行 --name 設置name參數 -p [主機:容器] 設置容器到主機的端口映射
stop 停止某個name的容器運行
---docker stop $(docker ps -a -q) 停止全部的容器
build 根據當前目錄下的Dockerfile構建一個鏡像
version 查看docker的版本
我的想法是能夠在docker中配置好一個Nodejs項目
以下是操作:
1.首先是看一下project里的文件,是一個單js文件外加node模塊
2.然后在當前目錄下創建一個Dockerfile
Dockerfile內容很簡單:1.加載一個已有的鏡像node 2.在當前鏡像中創建一個文件夾并把工作目錄設置到該文件夾下 3.將本地的當前目錄下的所有文件也就是ls列出的所有文件都拷貝到Service目錄下 4.最后在run的時候執行node demo.js
PS: 之前以為用RUN 也可以啊不都是shell命令么!結果發現RUN命令是在build的過程中就會調用的。如果設置了RUN 指令,那么在創建的時候就會執行這句命令,會卡死在build的過程中。而CMD的意思是,在build的過程中不會執行,以后docker跑起來之后就會執行
此時就能看到新建立的鏡像了叫zht/new
3.然后呢這個鏡像就可以啟動了
這里設置了name參數方便以后關閉。
這樣在本地主機就可以查看這個跑起來的程序了
PS:這里我更換了阿里云Docker。因為Docker hub的下載速度實在慢的驚人。
更換阿里鏡像首先要注冊一個阿里賬號然后