現在docker已經公升級了很多版本了,而我目前的docker版本仍然是1.12.5
,比較老的版本,所以現在我們需要公升級我們的docker版本,首先是如何檢視我們系統中的docker版本呢?
執行命令docker --version
即可檢視。
目前,docker分為了兩個可用的版本,分別為docker企業版
和docker社群版
,故名思議,docker ee
,即docker企業版是專門為企業開發和it團隊構建,部署商業應用所設計的,而docker ce
,即docker社群本是為開發者和剛開始使用docker的小團隊開發設計的。在這裡我們使用docker ce
。
docker的老版本被稱為docker
或者是docker engine
,如果安裝過,先把他們解除安裝掉。
sudo apt-get remove docker docker-engine
如果解除安裝成功,apt-get
將會報出沒有安裝包被安裝。
位於目錄/var/lib/docker/
中的映象,容器,卷和網路被保留。docker ce包現在被稱為docker-ce
,docker ee包現在被稱為docker-ee
。
如果沒有其他原因,推薦您安裝linux-image-extra-*
這些包,這些允許docker使用aufs
儲存驅動。
$ sudo apt-get update
$ sudo apt-get install \
linux-image
-extra
-$(uname -r) \
linux-image
-extra
-virtual
有兩種安裝方式,乙個是通過倉庫安裝,乙個是通過包安裝,在這裡我們選擇使用包安裝。
dpkg -i /path/to/package.deb
安裝完成之後,我們通過執行hello-world
映象來驗證docker ce是否安裝完成。
我們可以使用下面的命令來解除安裝docker包。
sudo apt-get purge docker-ce
但是映象,容器,卷或者是定製的配置檔案將不會自動被刪除,我們可以通過下面的命令來移走:
sudo rm -rf /var/lib/docker
這些輕便的映象被定義稱為dockerfile
。
dockerfile
建立乙個空的目錄然後把這個名稱為dockerfile
的檔案放進去。注意每一行的注釋。
# 使用乙個官方的python執行時作為乙個映象
from python:2.7-slim
# 安裝指定在requirements.txt檔案中的所有的包
run pip install -r requirements.txt
# 使80埠在容器外能夠被訪問
expose 80
# 定義環境變數
envname world
requirements.txt
flask
redis
from flask import flask
from redis import redis, rediserror
import os
import socket
# connect to redis
redis = redis(host="redis", db=0)
defhello
():try:
visits = redis.incr('counter')
except rediserror:
visits = "cannot connect to redis, counter disabled"
html = "" \
"hostname:
" \ "visits:"
return html.format(name=os.getenv('name', "world"), hostname=socket.gethostname(), visits=visits)
if __name__ == "__main__":
就是這樣,在你的系統中,你不需要python或者是requirements.txt
檔案中的任何東西,你也不需要構建或者是執行這個景象安裝到你的系統中。看上去好像是你設定了python或者是flask的環境變數,實際上並沒有。下面是ls
應該顯示的:
$ ls
現在執行build命令。這將會建立乙個docker映象,該映象我們使用-t
選項來標記他,這樣他就有了乙個友好的名稱。
docker build -t friendlyhello .
你構建的映象在哪呢?他在你的機器的本地docker映象條目中。
$ docker images
repository
tagimage
idfriendlyhello latest 326387cea398
docker
run-p 4000:80
friendlyhello
注意:這個埠對映`4000:80`是為了證明在`dockerfile`中你的`expose`和你使用`docker run -p`發布的不同的。在後面的步驟中,我們僅僅對映埠80到埠80,這樣就可以使用`http://localhost`。
在你的終端中使用ctrl+c
來退出。
docker run -d
-p4000:80 friendlyhello
你獲取到了乙個長得容器id並且然後被踢回到你的終端中。你的容器正在後台執行。你可以使用docker ps
來看到乙個簡便的容器id.
$ docker ps
container
idimage
command
created
28 seconds ago
你將看到container id
和http://localhost:4000
中的是相匹配的。
現在使用docker stop
來結束程序,使用container id
,就像下面這樣:
docker stop
1fa4ab2cf395
後面我們學習如何共享我們的映象。
docker login
docker tag friendlyhello username/repository:tag
docker push username/repository:tag
docker run -p
4000:80 username/repository:tag
公升級docker並構建自己的app
現在docker已經公升級了很多版本了,而我目前的docker版本仍然是1.12.5,比較老的版本,所以現在我們需要公升級我們的docker版本,首先是如何檢視我們系統中的docker版本呢?執行命令docker version即可檢視。目前,docker分為了兩個可用的版本,分別為docker企業...
四 Docker 構建自己的Docker映象
一台虛擬機器 乙個centos映象 centos映象中裝了docker 需求 構建乙個安裝了vim的centos映象 docker pull centosdocker run it centosyum install y vimdocker commit nice shockley tinner c...
(docker筆記) 構建自己的centos映象
vim mydockerfilefrom centos 基礎映象 maintainer aut 作者資訊 env mypath usr local 建立乙個變數 存放乙個值 workdir mypath 啟動後的工作目錄,就是進入容器後的預設目錄 run yum y install vim 執行指令...