Docker入門實踐

2021-09-07 19:28:38 字數 2441 閱讀 8116

docker是一門很成熟的容器技術,類似虛擬機器技術主要用做環境的隔離,方便環境的複製映象,虛擬機器是基於作業系統這一層的,而docker更加的輕量級,像是「應用」層級的。比如我需要乙個mysql環境、乙個nginx環境、乙個netcore執行環境等等。

有兩個非常重要的概念要搞明白

映象images:做好的環境,儲存在倉庫,有點像svn/git,有點像你做好的乙個系統盤,它存的就是環境,比如乙個nginx的映象。

容器containers:乙個映象在本機上的執行例項就是乙個容器,可以執行多個容器。比如我從遠端pull乙個nginx的映象,然後在本機執行這個nginx,這就是形成了乙個容器。

這兩個之間的關係就像類與例項化之後的物件一樣。

現在好多軟體都提供docker形式的分發了,映象的查詢可以登入查詢。需要什麼環境,直接pull到本機,然後run執行,非常方便,不用在本機安裝環境了。可以把自己配置好的環境提交成乙個映象,然後在用的地方直接pull and run, 這樣就不用擔心環境不一致的問題了,非常方便複製且環境一致。

下面我以centos 7.2為例,執行乙個nginx的容器。

#

更換源為國內

cd /etc/yun.repos.d

lsmv centos-base.repo centos-base.repo.backup

wget

yum makecache

yum -y update

#安裝 (通過官方sh指令碼)

wget

mv index.html docker.sh

sh docker.sh

#當前登入使用者

sudo usermod -ag docker root

#啟動停止,和普通服務一樣

service docker start

#檢視資訊

docker info

docker version

#-------------

#概念,要特別理解熟悉映象(images)和容器(container)

#images就像遠端伺服器svn上的**(其實是程式環境,比如centos,nginx,netcore....),可以拉下來編譯執行

#container就是本機執行乙個images產生的環境

#常用命令,不知道的,--help檢視

#映象操作

docker images

#docker search ***

docker pull ***

docker rmi ***

#容器操作

docker run ***xx

docker rm ***

docker start ***

docker stop ***

docker attach ***

docker exec -t -i *** /bin/bash

docker run *** yum install soft

docker cp ***:/container_path ospath

#高階 > 提交

docker容器執行後,通常是後台執行的,怎麼進入容器檢視運**況呢,有下面幾個辦法 

#

直接在外面檢視容器執行的日誌

docker logs ***

#進到容器且顯示當前執行的程式的終端

#退出時按ctrl+p+q,一般有點卡,這個介面是唯讀的,沒法互動

docker attach ***x

#進到容器裡,可以bash互動的

docker exec -t -i b2d28b4aa923 /bin/bash

使用docker exec進入容器後,就像ssh進入乙個linux環境一樣,完全可以控制系統了,比如檢視檔案路徑,開啟乙個檔案等等。在機器與容器之間copy檔案是乙個常見的場景,但是,容器裡的檔案結果是怎麼樣的,乙個檔案放在那個路徑下怎麼知道,這時用docker exe就很方便了。比如我執行乙個nginx的容器,我需要把**的檔案copy進去,但我不知道應該容器裡**檔案應該放在什麼地方,可以這樣做。進入容器後,注意看系統提示都變了,然後我就可以查詢nginx**的路徑,退出時exit退到機器

把乙個檔案copy到容器nginx**路徑下

docker cp my.html b2d28b4aa923:/user/share/nginx/html/my.html

#也可以反過來copy

docker cp ***:/user/file /root/file

#容器裡的檔案路徑為 容器id或名稱:容器裡的路徑

參考:

Docker 入門實踐

docker兩個最重要的概念是映象和容器。重要。容器 container 映象 images 倉庫 repository 除此之外,鏈結和資料卷也很 docker背後的想法是建立軟體程式可移植的輕量容器,讓其可以在任何安裝了docker的機器上執行,而不用關心底層作業系統,就像野心勃勃的造船者們成功...

Docker入門實踐

二 常用命令 三 入門實踐 參考最近在做機器學習相關的專案,其中谷歌ai模型需要用docker來配置環境,這篇文章僅用來記錄在這次實踐中學習到的docker相關知識,不會對docker進行長篇大論的介紹,希望能讓大家對docker有乙個快速的入門。首先我們來看看什麼是容器,貨櫃我們都知道,那麼容器是...

Docker入門及實踐

docker是軟體容器平台 倉庫是集中存放映象檔案的場所 倉庫註冊伺服器存放多個倉庫,倉庫又包含多個映象,每個映象有不同的標籤。倉庫分為公開倉庫和私有倉庫,例如docker hub docker為什麼比虛擬機器快 docer有著比虛擬機器更少的抽象層,不需要實現硬體資源虛擬化,直接使用實際物理機的硬...