Docker 介紹與實戰

2021-10-08 18:36:48 字數 4146 閱讀 5981

解決如下問題:

docker的架構介紹和基本使用

守護程序負責來與映象,倉庫和容器進行交流:

docker的一些常用方法:

1. 執行daocloud.io/nginx,由80埠對映在本地8080埠上:

docker run -p 8080:80 -d daocloud.io/nginx

-p 做埠對映,

-d 允許這個程式直接返回,把這個容器作為守護程序執行

2. copy檔案到docker容器

docker cp 檔名 容器id://usr/share/nginx/html

3. 儲存對容器做的修改

docker commit -m '容器提交的msg' 容器id 生成新映象名字

4. 刪除映象

docker rmi 映象id

5. 列出容器

docker ps 列出當前執行的容器

docker ps -a 列出所有的容器

6. 刪除容器

docker rm 容器id1 容器id2

7. 其他

docker pull 獲取image

docker build 建立image

docker images 列出image

docker run 執行container

docker ps 列出container

docker rm 刪除container

docker rmi 刪除image

docker cp 在host和container之間拷貝檔案

docker commit 儲存改動為新的image

from alpine:latest

maintainer xbf

cmd echo 'hello docker'

在當前目錄下新建並執行:

在當前目錄下新建並執行:

$docker build -t endlif/hello-nginx .

$docker run -d -p 80:80 endlif/hello-nginx

執行後測試:

當image執行為乙個容器時,會產生乙個容器層(container layer)分的這一層是可讀可寫的。

分層好處:多個image時,相同的層可以共享,減輕壓力。

使用容器時遇到的問題:

執行容器時,在容器中的改動是不會被儲存的,或者預設是不會被儲存的,那麼volume提供了持久化儲存的技巧。比如進行資料庫的操作,執行資料庫的容器,那麼資料庫的資料。

解決的辦法

volume 的基本操作 -v 引數指定 volume 的路徑, 然後再用 inspect 檢視 volume 對映到硬碟上的路徑, 然後再直接更改硬碟上的檔案。

容器和宿主機目錄掛載的三種方式:

1.第一種方式:

docker run -d --name nginx -v /usr/share/nginx/html nginx

#給出容器的所有資訊

docker inspect nginx

> mounts.source 宿主機目錄 [如果是mac,則該路徑不是mac上的實際路徑,因為mac上執行docker是還有一層虛擬層,這是docker虛擬層中的路徑,可以在docker中訪問到]

> mounts.destination:/usr/share/nginx/html/ 容器目錄

screen ~/library/containers/com.docker.docker/data/com.docker.driver.amd64-linux/tty [這個路徑才是mac本身掛載的目錄]

2.第二種方式:

#將當前目錄下的html子目錄掛載到容器中中的/var/www/html

docker run -p 80:80 -d -v $pwd/html:/var/www/html nginx

3.第三種方式:

# 宿主機目錄:$pwd/data docker目錄:/var/mydata  容器名:data_container 基礎映象:ubuntu

docker create -v $pwd/data:/var/mydata --name data_container ubuntu

# -it表示使用互動的方式進入容器[預設ubuntu基礎映象沒有服務]

docker run -it --volumes-from data_container ubuntu /bin/bash

#進入後執行mount,可以看到有/var/mydata目錄的掛載資訊

mount

docker的術語:

host:宿主機 我們平時所用的電腦

image:映象

container:容器 我們編譯而使用的叫容器

registry:倉庫 用於儲存映象的地方

daemon:守護程式

client:客戶端

國內的一些倉庫

docker搜尋,其結果按照stars來排序

$docker search whalesay

$docker pull docker/whalesay

$docker run docker/whalesay cowsay boo

dockerfile 可以讓使用者管理乙個單獨的應用容器;而 compose 則允許使用者在乙個模板(yaml 格式)中定義一組相關聯的應用容器(被稱為乙個 project,即專案),例如乙個 web 服務容器再加上後端的資料庫服務容器等

docker-compose常用命令的含義:

build 本地建立映象

command 覆蓋預設命令

depends_on 鏈結容器

ports 暴露埠

volumes 卷

up 啟動服務

stop 停止服務

rm 刪除服務中的各個容器

logs 觀察各個容器的日誌

ps 列出服務相關的容器

使用方式

後台管理頁: http://localhost:80/ghost

**是慕課網「docker入門」 課程的 實戰**,通過檢驗:

Docker 入門級 架構介紹與實戰

解決如下問題 docker的架構介紹和基本使用 守護程序負責來與映象,倉庫和容器進行交流 docker的一些常用方法 1.執行daocloud.io nginx,由80埠對映在本地8080埠上 docker run p 8080 80 d daocloud.io nginx p 做埠對映,d 允許這...

docker實戰之Docker的網路介紹

預設情況下啟動的docker容器,都是使用 bridge,docker安裝時建立的橋接網路,每次docker容器重啟時,會按照順序獲取對應的ip位址,這個就導致重啟下,docker的ip位址就變了 使用 network none docker 容器就不會分配區域網的ip 使用 network hos...

Docker詳解與實戰

依賴安裝方式 wget 2 安裝docker rpm ivh docker ce 17.12.0.ce 1.el7.centos.x86 64.rpm 3 啟動docker systemctl start docker 4 開機啟動docker systemctl enable docker 映象是...