溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker容器常用命令的介紹與使用

發布時間:2020-06-03 13:43:36 來源:億速云 閱讀:500 作者:Leah 欄目:云計算

今天小編給大家分享的是Docker容器常用命令的介紹與使用,文章詳細列出Docker常用命令并運用了實例展示了命令的使用方法,感興趣的小伙伴們可以參考借鑒,希望對大家有所幫助。

Docker常用命令:鏡像、容器、網絡、數據卷

Docker容器常用命令的介紹與使用

Docker容器常用命令的介紹與使用


Dockerfile示例:

Dockerfile是鏡像描述文件,包含了一條條的指令,每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。Dockerfile基本結構:

- 基礎鏡像

- 維護者信息

- 鏡像構建指令

- 容器啟動時執行指令

FROM node:8

LABEL maintainer="Jext Community, https://github.com/rickding/HelloDocker"

# copy files
COPY . /usr/node/
WORKDIR /usr/node/

# launch service
CMD ["node", "hello.js"]

EXPOSE 8010


Dockerfile常用指令:

Docker容器常用命令的介紹與使用 


Docker-compose資源編排常用命令:

Docker容器常用命令的介紹與使用

docker-compose.yml示例:

資源編排文件定義了版本信息、services服務配置、networks網絡信息、volumes卷信息,包含每個服務啟動的容器配置。

version: '3'
services:
    db:
        hostname: db
        
image: mysql:5
        
command: --default-authentication-plugin=mysql_native_password
        ports:
            - 3306:3306
        
environment:
            MYSQL_DATABASE: starter
            
MYSQL_ROOT_PASSWORD: root

    
api:
        
image: starter_api:latest
        
build: .
        ports:
            - 8011:8011
        
depends_on:
            - db


docker-compose.yml常用指令:

Docker容器常用命令的介紹與使用

Docker容器常用命令的介紹與使用

Docker容器常用命令的介紹與使用

Swarm集群部署常用命令:

Docker容器常用命令的介紹與使用


logs日志查看技巧

日志在系統運行中至關重要,開發測試以及運維通過系統日志分析查找故障原因。logs命令結合grep格式化日志信息:

docker-compose logs -ft | grep --color -i -e error -e warn -e version -e exception

Docker容器常用命令的介紹與使用

Docker三劍客logs命令整理如下:

Docker容器常用命令的介紹與使用

Docker容器常用命令的介紹與使用


Docker prune清理系統垃圾

Docker基于Linux內核通過操作系統和虛擬容器調用CGroup, Namespace等系統接口完成資源的分配與相互隔離,基本架構如下:

Docker容器常用命令的介紹與使用

Docker依賴系統資源運行,分配回收過程中會產生一些垃圾,比如docker stop容器后沒有執行docker rm刪除。運行docker system df查看資源信息,RECLAIMABLE是可回收比例:

 Docker容器常用命令的介紹與使用

增加選項-v將顯示詳情:docker system df -v

 Docker容器常用命令的介紹與使用

使用技巧:運行prune命令清理垃圾并釋放資源

docker system prune --volumes

Docker容器常用命令的介紹與使用

Docker提供的prune命令整理如下:

Docker容器常用命令的介紹與使用

Docker容器常用命令的介紹與使用


實例1:Docker啟動nginx

代碼:https://github.com/rickding/HelloDocker/tree/master/nginx

配置和腳本文件:

├── docker-compose.yml

├── build.sh

├── run.sh

├── stop.sh

Dockerfile基于nginx鏡像添加網頁和配置文件:

FROM nginx:stable

# web files
COPY ./web/ /usr/share/nginx/html

# config
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
COPY ./conf/conf.d /etc/nginx/conf.d

WORKDIR /etc/nginx

EXPOSE 80

構建鏡像執行腳本./build.sh或命令docker build -t nginx:latest .

啟動容器實例執行腳本./run.sh或命令docker run -it --name nginx -p 80:80 -d nginx:latest

訪問http://localhost:80/,看到頁面:

Docker容器常用命令的介紹與使用 

停止刪除實例執行腳本./stop.sh或命令docker stop nginx && docker rm nginx


實例2:資源編排Web服務

代碼:https://github.com/jextop/StarterDeploy

配置和腳本文件:

├── docker-compose.yml

├── pull.sh

├── up.sh

├── logs.sh

├── down.sh

docker-compose.yml部署Web服務依賴的多個容器實例,數據庫、緩存、消息隊列、日志系統、API接口和Web管理后臺:

version: '3'
services:
    db:
        hostname: db
        image: mysql:5
        command: --default-authentication-plugin=mysql_native_password
        ports:
            - 3306:3306
        environment:
           MYSQL_DATABASE: starter
           MYSQL_ROOT_PASSWORD: root

    cache:
        hostname: cache
        image: redis:4
        command: redis-server --appendonly yes
        ports:
            - 6379:6379

    mq:
        hostname: mq
        image: webcenter/activemq:latest
        ports:
            - 61616:61616
            - 8161:8161

    elasticsearch:
        hostname: elasticsearch
        image: elasticsearch:latest
        ports:
            - 9200:9200
            - 9300:9300

    log:
        hostname: log
        image: registry.cn-shanghai.aliyuncs.com/hellodock/logstash:7.5.2
        ports:
            - 9600:9600
            - 9601:9601
        depends_on:
            - elasticsearch

    db_admin:
        image: adminer:latest
        ports:
            - 3006:8080
        depends_on:
            - db

    api:
        image: registry.cn-shanghai.aliyuncs.com/jext/starter_api:latest
        ports:
            - 8011:8011
        depends_on:
            - db
            - cache
            - mq
            - log

    admin:
        image: registry.cn-shanghai.aliyuncs.com/jext/starter_admin:latest
        ports:
            - 8010:8010
        depends_on:
            - api

啟動Web服務執行腳本./up.sh或命令:docker-compose up -d

查看運行實例:docker-compose ps

查看日志執行腳本./logs.sh或命令docker-compose logs -ft

http://127.0.0.1:8010/,看到頁面:

Docker容器常用命令的介紹與使用 

停止和刪除服務執行腳本./down.sh或命令,docker-compose down --remove-orphans


實例3:集群部署Web服務

代碼:https://github.com/jextop/StarterDeploy

配置和腳本文件:

├── docker-compose.yml

├── pull.sh

├── deploy.sh

├── rm.sh

docker-compose.yml增加deploy屬性,replicas指定副本數量,placement指定docker節點:

deploy:
    replicas: 1
    # placement:
    #     constraints: [node.labels.group == api]

啟動Swarm加入節點構建集群,首個節點自動成為管理員:docker swarm init

部署Web服務:執行腳本./deploy.sh或命令:docker stack deploy -c docker-compose.yml starter

Docker容器常用命令的介紹與使用 

查看Stack和服務:docker stack ls && docker service ls

Docker容器常用命令的介紹與使用 

l 停止刪除服務:執行腳本./rm.sh或命令docker stack rm starter

Docker容器常用命令的介紹與使用

以上就是Docker容器常用命令的介紹與使用,詳細使用情況還需要大家自己親自動手使用過才能領會。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女