国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

慕課網_《Docker入門》學習總結

CoorChice / 2747人閱讀

摘要:時間年月日星期六說明本文部分內容均來自慕課網。必填用于執行命令,當執行完畢后,將產生一個新的文件層。可選指定此鏡像啟動時默認執行命令。可選用于指定需要暴露的網絡端口號。可選向鏡像中掛載一個卷組。

時間:2017年09月16日星期六
說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com
教學源碼:無
學習源碼:無

第一章:課程簡介 1-1 課程介紹

Docker入門教程

Docker簡介:什么是Docker
鏡像與容器
容器存儲
Registry
多容器app

面向用戶

對docker感興趣的開發、測試、運維

預備知識

linux命令行
bash shell腳本
1-2 Docker介紹

什么是Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,
然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口。

與現有技術進行類比

可以粗糙地理解為輕量級的虛擬機
開掛的chroot(chroot:對應用程序作了文件系統的分離)

Docker與虛擬機

1-3 Mac安裝

學習筆記

進入docker官網:www.docker.com
下載docker安裝包:Docker.dmg

打開docker
open Docker.dmg
或雙擊Docker.dmg
將Docker拖到Applications里面

驗證安裝
docker info
1-4 Linux安裝

學習筆記

安裝docker本身
sudo wget -qO- https://get.docker.com/ | sh
允許非root用戶運行docker
sudo usermod -aG docker zc
驗證安裝
docker info
1-5 Windows安裝

學習筆記

官網地址:https://www.docker.com/
下載安裝包:https://www.docker.com/docker-windows
執行安裝包:Docker for Windows Installer.exe
第二章:Docker架構 2-1 架構介紹

Docker架構

學習筆記

docker run ubuntu echo hello docker
 使用ubuntu鏡像,在里面運行了echo hello docker這個命令,輸出就是hello docker
 
docker run nginx

docker images
查看本地鏡像

docker run -p 8080:80 -d daocloud.io/nginx
運行daocloud.io/nginx鏡像
-p 端口映射,將nginx的80端口映射到本地的8080端口
-d 使用守護進程啟動

docker ps
查看當前正在運行的容器


docker cp index.html 容器ID:容器內部文件路徑
docker cp index.html 17asdasdasa://usr/share/nginx/html
將index.html文件拷貝到容器ID為17asdasdasa容器內部,路徑為//usr/share/nginx/html

docker stop 容器ID
停止指定容器

docker commit -m "fun" 容器ID nginx-fun
保存容器為鏡像,鏡像名為nginx-fun

docker rmi 鏡像ID
刪除指定鏡像

docker ps -a
查看所有容器(正在運行和停止運行)

docker rm 容器ID
刪除指定容器

docker pull
獲取鏡像

docker build
創建鏡像

docker images
列出鏡像

docker run
運行鏡像為容器

docker ps
列出正在運行的容器

docker rm
刪除容器

docker rmi
刪除鏡像

docker cp
在主機和容器之間拷貝文件

docker commit
保存改動后的容器為新的image
第三章:Dockerfile 3-1 Dockerfile介紹

學習筆記

第一個Dockerfile

FROM alpine:latest
MAINTAINER zc
CMD echo "hello docker"

// 依賴于基礎鏡像alpine:latest
// 標識鏡像信息
// 需要運行的命令

touch Dockerfile
產生一個Dockerfile文件
vim Dockerfile
編輯Dockerfile文件

docker build -t hello_docker .
構建docker鏡像,-t參數指定鏡像名稱,最后面的點(.)表示構建鏡像文件的路徑

docker images
docker run hello_docker
3-2 Dockerfile實戰

學習筆記

第二個Dockerfile

FROM ubuntu
MAINTAINER zc
RUN sed -i "s/archive.ubuntu.com/mirrors.ustc.edu.cn/g" /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENTRYPOINT ["/usr/sbin/nginx","-g","deamon off;"]
EXPOSE 80

// 依賴于基礎鏡像ubuntu
// 標識鏡像信息
// 運行ubuntu命令,新增一個軟件倉庫鏡像地址
// 運行ubuntu命令,更新軟件
// 運行ubuntu命令,安裝nginx
// 拷貝本地文件到鏡像內部
// 在鏡像中默認啟動nginx服務
// 鏡像暴露服務的端口

mkdir dockerfile2
cd dockerfile2
touch Dockerfile
vim Dockerfile
touch index.html
vim index.html
今天是周末!

docker build -t zc/hello-nginx .

docker run -d -p 80:80 zc/hello-nginx

curl http://localhost
使用curl進行測試

Dockerfile語法

FROM:指明基礎鏡像名稱。必填
RUN:用于執行命令,當RUN執行完畢后,將產生一個新的文件層。可選
ADD:向鏡像添加新文件或者新目錄。可選
COPY:從主機向鏡像復制文件。可選
CMD:指定此鏡像啟動時默認執行命令。可選
EXPOSE:用于指定需要暴露的網絡端口號。可選
WORKDIR:設定此鏡像后續操作的默認工作目錄。可選
MAINTAINER:可用于提供作者、版本及氣他備注信息。可選
ENV:用于在鏡像中添加環境變量。可選
ENTRYPOINT:在鏡像中設定默認執行的二進制程序。可選
USER:在鏡像構建過程中,生成或者切換到另一個用戶。可選
VOLUME:向鏡像中掛載一個卷組。可選
3-3 鏡像分層

鏡像分層

Dockerfile中的每一行都產生一個新層
FROM alpine:latest        4dffsd5454wq
MAINTAINER zc        fbdfasdfasfd554
CMD echo "hello docker"    3df545dfad4a
第四章:Docker存儲 4-1 Volume介紹

Volume

提供獨立于容器之外的持久化存儲
4-2 Volume操作

學習筆記

第一種形式

docker run -v 容器內部地址 鏡像名稱
docker run -d --name nginx -v /usr/share/nginx/html nginx
運行nginx容器,通過-v掛載一個卷組,通過-d后臺啟動,通過--name為容器指定名稱

docker inspect 容器名稱
docker inspect nginx
查看指定容器所有信息

查看Mounts節點下的Sources節點和Destination節點信息
該容器把宿主機的Sources對應目錄掛載到容器內部的Destination的目錄地址

cd Sources對應的目錄路徑
vim index.html,修改index.html文件

docker exec -it 容器名稱 /bin/bash
進入到容器內部

cd Destination對應的路徑路徑
然后查看index.html文件,發現是剛剛修改后的內容,即掛載成功,映射關系正確

第二種形式

docker run -v $PWD/code:/var/www/html nginx
本地目錄掛載到容器里面的一個路面里面
docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx

cat html/index.html
查看本地文件的內容

docker exec -it 容器名稱 /bin/bash
進入到容器內部

cat /usr/share/nginx/html/index.html
發現其內容和本地文件的內容一致,即映射關系正確

第二種形式

docker run --volumes-from ...

mkdir data
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
產生一個僅有數據的容器

docker run -it --volumes-from data_container ubuntu /bin/base
從另外一個容器掛載, 運行并直接進入容器內部

mount
cd mydata
touch whatever.txt
exit

cd data
ls
查看本地data目錄下是否有whatever.txt文件
可以多個容器掛載一個數據容器,實現數據共享
第五章:鏡像倉庫 5-1 Registry介紹

Docker相關術語

host:宿主機
image:鏡像
container:容器
registry:鏡像倉庫
daemon:守護程序
client:客戶端

Registry相關命令

docker search 鏡像名稱
從鏡像倉庫中搜索指定鏡像
docker pull 鏡像名稱
從鏡像倉庫中拉取指定鏡像
docker push 鏡像名稱
將本地鏡像推送到鏡像倉庫

國內的一些鏡像倉庫

daocloud
時速云
阿里云
5-2 Registry實戰

學習筆記

docker search whalesay
在鏡像倉庫中搜索whalesay

docker pull docker/whalesay
從鏡像倉庫中拉取鏡像docker/whalesay到本地

docker images
查看本地鏡像信息

docker run docker/whalesay cowsay Docker so fun
運行docker/whalesay鏡像,并指定參數

docker tag docker/whalesay zc/whalesay
依賴docker/whalesay鏡像產生新的zc/whalesay鏡像(類似復制)

docker push zc/whalesay
將鏡像zc/whalesay推送到鏡像倉庫

docker login
在push之前,需要登錄。默認登錄到docker hub

到docker hub官方地址
查看到自己push的鏡像
第六章:多容器app 6-1 Compose介紹

docker-compose

多容器app
docker-compose是獨立的軟件
docker-compose安裝
linux:curl https://github.com/docker/compose
6-2 Compose安裝

學習筆記

curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
下載docker-compose包到/usr/local/bin/docker-compose

chmod a+x /usr/local/bin/docker-compose
給/usr/local/bin/docker-compose授可執行權限

docker-compose --version
驗證安裝
6-3 Compose實戰

實戰案例介紹

app名稱:ghost,是一個博客平臺程序
安裝之后,可自己寫文章或別人發布
架構:nginx-ghost app-mysql
分別分為三個容器

docker-compose.yml文件

ghost-app: 
  build: ghost
  depends_on: 
    - db
  ports: 
    - "2368:2368"
nginx: 
  build: nginx
  ports: 
    - "80:80"
  depends_on: 
    - ghost-app
db: 
  images: "mysql:5.7.15"

docker-compose.yml命令

build:本地創建鏡像
command:覆蓋缺省命令
depends_on:連接容器
ports:暴露端口
volumes:掛載卷組
image:拉取鏡像

docker-compose命令

up:啟動服務
stop:停止服務
rm:刪除服務中的各個容器
logs:觀察各個容器中的日志
ps:列出服務相關的容器

學習筆記

mkdir ghost
cd ghost

mkdir ghost
mkdir nginx
mkdir data

// ghost鏡像構建
cd ghost
touch Dockerfile
vim Dockerfile

FROM ghost
COPY ./config.js /var/lib/ghost/config.js
EXPOSE 2368
CMD ["npm","start","--production"]

// 依賴ghost官方鏡像
// 拷貝本地配置文件到鏡像中
// 聲明暴露服務的端口
// 執行啟動命令。ghost為node.js程序,所以使用npm命令

touch config.js
vim config.js

var path = require("path"),
config;

config = {
    production: {
        url:"http://mytestblog.com",
        mail: {},
        database: {
            client: "mysql",
            connection: {
                host: "db",
                user: "ghost",
                password: "ghost",
                database: "ghost",
                port: "3306",
                charset: "utf8"
            },
            debug: false
        },
        paths: {
            contentPath: path.join(process.env.GHOST_CONTENT,"/")
        },
        server: {
            host: "0.0.0.0",
            port: "2368"
        }
    }
};

module.exports = config;

// nginx鏡像構建
cd nginx

touch Dockerfile
vim Dockerfile

FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

// 依賴nginx官方鏡像
// 拷貝本地配置文件到鏡像中
// 聲明暴露服務的端口

touch nginx.conf
vim nginx.conf

worker processes 4;
events {worker_connections 1024;}
http {
    server {
        listen 80;
        location / {
            proxy_pass http://ghost-app:2368;
        }
    }
}

回到ghost根路徑
ls顯示
ghost:存放Dockerfile和配置文件用來構建鏡像
nginx:存放Dockerfile和配置文件用來構建鏡像
data:存放博客的數據

// compose文件用于描述整個系統的架構
touch docker-compose.yml
vim docker-compose.yml

version: "2"

networks: 
  ghost: 

service: 
  ghost-app: 
    build: ghost
    networks: ghost
    depends_on: db
    ports: "2368:2368"
  
  nginx: 
    build: nginx
    networks: ghost
    depends_on: ghost-app
    ports: "80:80"
  
  db: 
    image: "mysql:5.7.15"
    networks: ghost
    environment: 
      MYSQL_ROOT_PASSWORD: mysqlroot
      MYSQL_USER: ghost
      MYSQL_PASSWORD: ghost
    volumes: $PWD/data:/var/lib/mysql
    ports: "3306:3306"


docker-compose up -d
啟動
docker-compose stop
關閉
docker-compose rm
刪除

docker-compose build
構建


訪問http://localhost/ghost
第七章:課程總結 7-1 課程總結

課程總結

Docker介紹:容器、鏡像
如何制作鏡像
如何分享鏡像
如何持久化容器數據
如何編排一個多容器的應用

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27051.html

相關文章

  • 課網_《第一個docker化的java應用》學習總結

    摘要:時間年月日星期四說明本文部分內容均來自慕課網。倉庫構建鏡像的目的是為了在其機器上運行鏡像程序。使用參數,冒號前面為主機端口,后面為容器端口。 時間:2017年04月27日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:無 第一章:課程介紹 1-1 課程介紹 Docker能火的原因 快速的持續集成 服務的彈性伸縮 部署...

    李濤 評論0 收藏0
  • 課網_《第一個docker化的java應用》學習總結

    摘要:時間年月日星期四說明本文部分內容均來自慕課網。倉庫構建鏡像的目的是為了在其機器上運行鏡像程序。使用參數,冒號前面為主機端口,后面為容器端口。 時間:2017年04月27日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:無 第一章:課程介紹 1-1 課程介紹 Docker能火的原因 快速的持續集成 服務的彈性伸縮 部署...

    vvpvvp 評論0 收藏0
  • 課網_《Redis入門學習總結

    摘要:時間年月日星期日說明本文部分內容均來自慕課網。當對應的鏈表存在時,從左側插入數據。從右側插入數據。當系統在定時持久化之前出現宕機,還未來得及往硬盤寫入數據,那數據就丟失了。當數據集過大時,可能會導致服務器停止幾百毫秒甚至是秒鐘。 時間:2017年05月21日星期日說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:無個人學習源碼:https:...

    leanxi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<