學習Docker,看這一篇就夠了!

什麼是容器

依託於linux內核的虛擬化技術

什麼是Docker

能夠把應用程序自動部署到容器的開源引擎

Docker的基本組成

在這裏插入圖片描述

Docker Client客戶端

Docker Daemon守護進程

Docker Image鏡像

容器的基石

層疊的只讀文件系統

聯合加載

Docker Container容器

通過鏡像啓動

啓動和執行階段

寫時複製

Docker Registry倉庫

共有

Docker Hub

私有

Docker在線演示地址

Docker的C/S模式

Docker的守護進程

  1. 查看守護進程
    ps -ef | grep docker
    systemctl status docker
  2. 使用service命令管理
    sudo service docker start/stop/restart
  3. Docker 的啓動選項
    docker -d [OPTIONS]
  • 運行相關:
    -D,–debug=false
    -e,–exec-driver=‘native’
    -g,–graph=’/var/lib/docker’
    -icc=true
    -l,–log-level=‘info’
    –label=[]
    -p,–pidfile=’/var/run/docker.pid
  • Docker服務器連接相關
    -G,–group=‘docker’
    -H,–host=[]
    -tls=false
    -tlsverify=false
  • Remote API相關
    –api-enable-cors=false
  • 存儲相關
    -s,–storage-driver=’’
    –selinux-enabled=false
    –storage-opt=[]
  • Registry 相關
    –insecure-registry=[]
    –registry-mirror=[]
  1. 啓動配置文件
    /etc/default/docker/

Docker的遠程訪問

守護進程設置

修改配置文件 /etc/default/dcoker
DOCKER_OPTS=" --label name=docker_server_1 -H tcp://0.0.0.0:2375"
重啓docker service docker resart

客戶端配置

  • 使用環境變量
    export DOCKER_HOST='tcp://ip:端口' (這裏的ip是要連接的遠程主機IP)

Dcoker的容器

容器的基本操作

  • 啓動容器
    docker run IMAGE [COMMAND][ARG...]
    run 在新容器中執行命令
    eg : docker run centos echo 'hello world'
  • 啓動交互式容器
    docker run -i -t IMAGE /bin/bash
    要開啓以下設置 爲容器始終打開標準輸入
    -i --interactive=true|false 默認是false
    爲創建的容器分配一個tty終端
    -t --tty=true|false 默認是false
    在這裏插入圖片描述
  • 查看容器
    docker ps [-a] [-l]
    在這裏插入圖片描述
  • 查看容器的信息
    docker inspect ID/NAMES
    eg: docker inspect 71f344799cfc
  • 自定義容器名字
    docker run --name=自定義名字 -i -t IMAGE /bin/bash
    在這裏插入圖片描述
  • 重新啓動已經停止的容器
    docker start [-i] 容器名
  • 刪除容器
    docker rm 容器名

Docker 守護式容器

什麼是守護式容器?

  • 能夠長期運行
  • 沒有交互式會話
  • 適合運行應用程序和服務

啓動守護式容器

方法1
docker run --name=容器名 -i -t /bin/bash
在這裏插入圖片描述
使用Ctrl + p Q退出,不使用exit
在這裏插入圖片描述
附加到運行中的容器:
docker attach 容器名

方法2
docker run -d 鏡像名 [COMMAND] [ARG...]
在這裏插入圖片描述

查看容器日誌

docker logs [-f] [-t] [--tail] 容器名
-f --follows=true 默認爲false
-t --timestamps=true 默認爲false
–tail=“all”
在這裏插入圖片描述

查看容器內進程

docker top 容器名

在運行中的容器中啓動新進程

docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
在這裏插入圖片描述

停止守護式容器

  • docker stop 容器名
    給運行中的容器發送一個停止信號,等待容器停止後,命令會返回容器的名字。
  • docker kill 容器名
    立刻殺死
可以使用man命令查看docker具體命令的詳細介紹
例如:`man docker exec`

在Dokcer中部署靜態網站

設置容器的端口映射

  • docker run [-P]
    大寫P 爲容器暴露的所有端口進行映射。端口映射命令:
    docker run -P -i -t centos /bin/bash
  • docker run [-p]
    指定映射哪些端口
    1. 容器端口 containerePort
      docker run -p 80 -i -t centos /bin/bash
    2. 宿主機端口:容器端口 HostPort:containerPort
      docker run -p 8080:80 -i -t centos /bin/bash
    3. IP::容器端口 IP:containerPort
      docker run -p 0.0.0.0:80 -i -t centos /bin/bash
    4. IP:宿主機端口:容器端口 ip:HostPort:containerPort
      docker run -p 0.0.0.0:8080:80 -i -t centos /bin/bash

Nginx 部署流程

  • 創建映射80端口的交互式容器
    docker run -p 80 --name web -i -t centos /bin/bash
  • 安裝Nginx
    yum install nginx
  • 安裝文本編輯器Vim
    yum install vim
  • 創建靜態頁面
  • 修改Nginx配置文件
  • 運行Nginx
  • 驗證網站訪問

Docker 鏡像

容器的基石

層疊的只讀文件系統

聯合加載技術

列出鏡像

docker images [OPTIONS] [REPOSITORY]

-a ,–all=false 顯示所有鏡像
-f ,–filter=[]
–no-trunc=false 不使用截斷的方式顯示數據
-q, --quiet=false 只顯示鏡像的唯一ID
在這裏插入圖片描述

  • REPOSITORY 一系列鏡像的集合
    Registry 倉庫 是docker鏡像的存儲服務
  • TAG
    鏡像的標籤。
    創建容器時可以指定 鏡像標籤,不指定默認使用latest

查看鏡像

docker inspect [OPTIONS] CONTAINER | IMAGE [CONTAINER | IMAGE]
既支持容器的查看,也支持鏡像的查看。
在這裏插入圖片描述
在這裏插入圖片描述

刪除鏡像

docker rmi [OPTIONS] IMAGE [IMAGE] ...
-f, --force=false
–no-prune=false

查找鏡像

  • Docker Hub 官網
    • https://registry.hub.docker.com
  • docker search [OPTIONS] TERM
    • –automated=false
    • –no-trunc=false
    • -s,–stars=0 星級 最低幾個星星

拉取鏡像

docker pull [OPTIONS] NAME [:TAG]
-a, --all-tags=false
如果慢的話可以使用國內的docker倉庫鏡像服務器拉取
使用 --registry-mirror 選項

  1. 修改:/etc/default/docker
  2. 添加:DOCKER_OPTS="–registry-mirror=http://xxxx" xxx從daocloud獲取

推送鏡像

docker push [REPOSITORY NAME]

如何在本地構建鏡像?

  • 保存對容器的修改,並再次使用
  • 自定義鏡像的能力
  • 以軟件的形式打包並分發服務及其運行環境
  1. docker commit 通過容器構建
    docker commit [OPTINOS] CONTAINER [REPOSITORY[:TAG]]
    -a,–author=""
    -m,–message=""
    -p,–pause=true
    在這裏插入圖片描述
  2. docker build 通過Dockerfile文件構建
    創建第一個Dockerfile
    #First Dockerfile
    FROM ubuntu:14.04
    MAINTAINER liunan "[email protected]"
    RUN apt-get update
    RUN apt-get install nginx
    EXPOSE 80
    
    1. 創建目錄 mkdir -p dockerfile/df_test
    2. 編寫 dockerfile文件
      在這裏插入圖片描述
    3. 執行 docker build 命令
      docker build [OPTIONS] PATH | URL | -
      –force-rm=false
      –no-cache=false
      –pull=false
      -q,–quiet=false
      –rm=true
      -t,–tag="" 指定構建的鏡像的名字
      在這裏插入圖片描述
    4. 使用剛纔build 的鏡像
      docker run -d --name nginx_use_df -p 80 ln/df_test nginx -g "daemon off;"

Dockerfile指令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章