公升級docker並構建自己的app

2021-09-20 00:22:07 字數 3826 閱讀 9183

現在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 idhttp://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 執行指令...