導航:首頁 > 文件處理 > docker容器內部解壓

docker容器內部解壓

發布時間:2023-07-30 06:45:53

① docker怎麼清理容器的文件

# 殺死所有正在運行的容器.
alias dockerkill='docker kill $(docker ps -a -q)'
# 刪除所有已經停止的容器.
alias dockercleanc='docker rm $(docker ps -a -q)'
# 刪除所有未打標簽的鏡像.
alias dockercleani='docker rmi $(docker images -q -f dangling=true)'
# 刪除所有已經停止的容器和未打標簽的鏡像.
alias dockerclean='dockercleanc || true && dockercleani'
另附上docker常用命令
docker version #查看版本
docker search tutorial#搜索可用docker鏡像
docker pull learn/tutorial #下載鏡像
docker run learn/tutorial echo "hello word"#在docker容器中運行hello world!
docker run learn/tutorial apt-get install -y ping#在容器中安裝新的程序
保存鏡像
首先使用docker ps -l命令獲得安裝完ping命令之後容器的id。然後把這個鏡像保存為learn/ping。
提示:
1.運行docker commit,可以查看該命令的參數列表。
2.你需要指定要提交保存容器的ID。(譯者按:通過docker ps -l 命令獲得)
3.無需拷貝完整的id,通常來講最開始的三至四個字母即可區分。(譯者按:非常類似git裡面的版本號)
正確的命令:
docker commit 698 learn/ping

② 詳解Docker——你需要知道的Docker進階知識五

Dockerfile 是一個文本文件,其中包含了構建 Docker 鏡像需要執行的命令序列。使用 docker build 命令從 Dockerfile 中讀取指令來構建鏡像。

構建鏡像時,該過程的第一件事是將 Dockerfile 文件所在目錄下的所有內容發送給 Docker 守護進程。所以大多數情況下,最好創建一個新的目錄,在其中保存 Dockerfile ,以及構建鏡像所需的其它文件。Dockerfile 文件所在目錄也被稱為構建上下文(context)。

使用 FROM 指令指定一個基礎鏡像,後續指令將在此鏡像基礎上運行:

在 Dockerfile 中可以指定一個用戶,後續的 RUN , CMD 以及 ENTRYPOINT 指令都會使用該用戶身份去執行,該用戶必須已存在。

除了指定用戶之外,還可以使用 WORKDIR 指定當前工作目錄(CWD), RUN , CMD , COPY , ADD 指令將在指定的工作目錄中執行。

RUN 指令用於執行命令,該指令有兩種形式:

例如我們執行更新命令:

CMD 的使用方式跟 RUN 類似,不過在一個 Dockerfile 文件中只能有一個 CMD 指令,如果有多個,則只有最後一個會生效。該指令指定了啟動容器時要執行的命令,例如:

可以在 docker run 時指定命令來覆蓋默認的 CMD 命令,比如 docker run image echo"hello shiyanlou" 。

CMD 指令還有一種特殊用法。在 Dockerfile 中,如果使用 ENTRYPOINT 指令指定了入口命令,則 CMD 指令的內容會作為 ENTRYPOINT 指令的參數:

ENTRYPOINT 指令會覆蓋 CMD 指令作為容器運行時的默認指令,並且該指令不會被 docker run 時指定的指令覆蓋,如下示例:

上述文件構建出來的鏡像,使用 docker run image 等同於 docker run image ls-a-l 。使用 docker run image-i-s 等同於 docker run image ls-a-i-s 。即 CMD 指令的值會被當作 ENTRYPOINT 指令的參數附加到 ENTRYPOINT 指令的後面,只有 CMD 指令可以被覆蓋。

COPY 和 ADD 都用於將構建上下文中的文件,目錄等復制到鏡像中。使用方式如下:

`` 可以指定多個,但是其路徑不能超出構建上下文范圍,即必須在 Dockerfile 同級或子目錄中。

不需要預先存在,不存在時會自動創建,如果使用相對路徑,則 為相對於工作目錄的路徑。塌陪

COPY 和 ADD 的不同之處在於,ADD 可伏衫或以添加遠程文件,並且 `` 可以是 gzip 或 tar 等格式的壓縮文件,添加時會自動進行解壓

ENV 指令用於設置環境變數:

VOLUME 指令指定要創建的掛載路徑,在容器運行時,將為每個掛載路徑創建一個匿名卷並掛載上去:

上述指令將會在容器運行時,創建兩個匿名卷,並分別掛載到容器中的 /data1 和 /data2 路徑。

學習了上面這些常見的 Dockerfile 指令之後,可以使用這些指令來構建一個鏡像。如下所示,構建一個提供 ssh 服務的鏡像:

構建鏡像

查看鏡像

啟動容器

查看已經啟動的容器

測試遠程登錄

Compose 是運行由多個容器組成的 Docker 應用的工具,使用 Compose 可以一次啟動一組有關聯的服務,每個服務由來自同一鏡像的單個或多個容器組成。

在復雜應用中,應用一般由多個服務(service)組成,例如一個網站後台通常包含 Web 服務、資料庫服務、緩存缺伍服務、消息隊列服務等。

使用 Compose 的步驟如下:

目前有三種版本的 Compose 文件格式:

下載 docker-compose-Linux-x86_64

下載成功後,為了方便使用,可以將其添加到 PATH 路徑下

執行完成後,就能夠在終端下直接使用 docker-compose 命令了:

接下來我們將創建一個 Web 應用,該應用包含兩個容器:

項目目錄結構如下:

首先編輯 app/web/web.py 文件,寫入下面的內容:

上述代碼創建了一個簡單的 Web 應用。該應用會連接 redis 服務,在訪問 / 頁面時,自動將變數 number 加 1。

編輯 app/web/requirements.txt 文件,輸入如下內容:

requirements.txt 文件存放了 Web 應用依賴的第三方庫包的名稱和版本信息。

編輯 app/web/Dockerfile 文件,添加如下內容

上述 Dockerfile 定義了 Web 應用鏡像,該鏡像基於 python:2.7 基礎鏡像,在其基礎上安裝了應用依賴的庫包,並通過 CMD 指令指定了應用的啟動命令。

編輯 app/docker-compose.yml 文件:

該 docker-compose.yml 文件定義了兩個服務,分別為 web 和 redis 服務,並且配置了 web 服務的埠映射和掛載目錄。 depends_on 定義了依賴關系,被依賴的服會先啟動。

進入 app 目錄,執行 docker-compose up 命令來啟動應用:

啟動成功後,就可以打開網址 127.0.0.1:8001 來訪問 Web 應用了。

另外一些命令:

③ docker常用命令

1、 service docker start // 啟動docker
2、 docker images // 查看docker所安裝的鏡像
3、 docker search [name] 查詢某個鏡像 例如查詢mysql docker search mysql
4、 docker pull [name] 拉取某個鏡像 例如mysql docker pull mysql
5、 docker pull [name] [:tag] tag版本肢鍵號 如果不寫默認拉取最新的版本
例如: docker pull mysql:5.7
6、 docker rmi [imgaeId] 刪除命令,imageId是鏡像id

2.1 新建一個新的容器 docker pull centos
2.2 docker run [可選參數] image名字
參數說明
--name="Name" 給容器命名
-d 後台方式運行
-p [主機埠]:[容器埠] 指定容器的埠 例如啟動tomcat 命令: docker run -p 8081:8080 tomcat 解釋:8081是對外訪問(伺服器)的埠。8080是docker裡面的tomcat埠. tomcat是鏡像拉取下來後的名字. 例:若別人訪問。IP+8081埠才能訪問到tomcat啟動的項目
-P 大寫P是隨機指定埠
-it 與容器交互,就是進入到容器裡面

命令: docker run -it [鏡像名稱] /bin/bash 例子: docker run -it centos /bin/bash

docker ps 查看運行派行中的容器
docker ps -q 只查詢運行容器的編號,一般與下面-a合並使用, docker ps -aq
docker ps -a 查看曾經運行過的容器
docker ps -a -n=1 加上-n可以指定查詢最近幾個運行的容器、

Ctrl+p+q 這樣退出就不會停止容器

docker rm -f [容器id] 指定刪除某個運行的容器
docker rm -f $(docker ps -aq) 刪除全部運行的容器

docker start [容器id] 啟動容器
docker restart [容器id] 重啟容器
docker stop [容器id] 停止容器
docker kill [容器id] 強制停止容器

docker run -d [鏡像名] 例如: docker run -d centos
但是有問題, docker ps 查詢不到運行的容器
原因:docker容器用後台運行,就必須要有一個前台進程,docker發現沒有應用,所以就自動停止

docker logs -tf --tail 10 [容器id]
t的意思是時間戳,f保留日誌列印窗口,tail持續列印,10列印最後10條

docker top [容器id]

docker inspect [容器id]

方式一: docker exec -it [containt_id] /bin/bash // 進入該鏡像內部

docker cp [容器id]:[容器路徑] [主機路歷帶巧徑]

④ docker容器下搭建python環境

1)進入容器

docker exec -it 容器id(或容器名) /bin/bash

查看當前操作系統cat /etc/issue

Debian GNU/Linux 10 \n \l

這里查到的是Debian系統(不是ubuntu, 也不是centos),這里yum是沒有的,所以不能用yum安裝了,這里用apt-get代替yum

先執行更新apt-get

apt-get update

2)在當前容器目錄下(自己的虛擬機:/usr/local/tomcat)

mkdir python3

cd python3/

執行命令:wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

解壓:tar -xvf Python-3.6.8.tgz

cd Python-3.6.8/

然後執行:./configure --prefix=/usr/local/tomcat/python3,會報錯:configure: error: no acceptable C compiler found in $PATH

apt-get 安裝依賴包

這個是因為缺少gcc相關依賴包,使用apt-get代替yum安裝相關依賴包

apt-get -y install gcc automake autoconf libtool make

apt-get -y install make*

apt-get -y install zlib*

apt-get -y install openssl libssl-dev

apt-get install sudo

make編譯安裝

./configure --prefix=/usr/local/tomcat/python3 --with-ssl

make

make install

最後:添加軟鏈接

添加python3軟鏈接

ln -s /var/jenkins_home/python3/bin/python3.6 /usr/bin/python3

添加pip3軟鏈接

ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3

註:

ssl問題

如果pip3安裝的時候遇到報ssl相關問題:pip is configured with locations that require TLS/SSL, however the ssl mole in Python is not available.

這個是因為缺少ssl依賴包,網上的解決方案是yum install openssl-devel ,由於Debian系統沒有yum,用apt-get安裝

apt-get -y install openssl libssl-dev

安裝完成之後只能解決系統自帶的python2對應的pip安裝問題,無法解決python3的pip3安裝問題。

解決辦法:上面編譯的時候需加上參數 --with-ssl

./configure --prefix=/usr/local/tomcat/python3 --with-ssl

重新執行make和make install 就可以了

閱讀全文

與docker容器內部解壓相關的資料

熱點內容
免費pdf在線轉換 瀏覽:766
堆貨演算法 瀏覽:875
vsc編譯vc程序 瀏覽:195
centos55命令 瀏覽:709
美國干編程有什麼條件 瀏覽:505
阿里雲伺服器遠程鏈接 瀏覽:249
墨鏡慧眼怎麼下載廠商的app 瀏覽:61
iphone加密專線 瀏覽:491
aes產生加密文件 瀏覽:415
編程實現藍牙通信 瀏覽:769
怎麼恢復掉簽的app 瀏覽:847
伺服器部署ip地址 瀏覽:323
涉密場所周邊安全防護距離演算法 瀏覽:674
安卓fpse模擬器怎麼設置加速 瀏覽:948
建行app怎麼生成電子簽章 瀏覽:510
獲取當前時間javadate 瀏覽:75
帶密碼的wifi如何加密 瀏覽:239
伺服器怎麼變成陣列 瀏覽:720
web前端黑客技術pdf 瀏覽:73
育兒百科全書pdf 瀏覽:602