Docker學習筆記(一)

基礎命令

  • 啓動容器: docker run -dit ubuntu
  • 查看創建的容器: dokcer inspect
  • 自定義容器名:
dokcer run --name=自定義名 -i -t IMAGE /bin/bash
  • 從新啓動中止的容器:docker start [-i] 容器名。 -i是以交互的方式啓動中止的容器
  • 刪除已經中止的容器:docker rm 容器名

守護式容器

* 可以長期運行
* 沒有交互式會話
* 適合運行應用程序和服務
  • 以守護式運行容器:
docker run -i -t IMAGE /bin/bash
同時按ctrl+P和ctrl+q //退出後容器在後臺運行
  • 附加到運行中的容器:docker attach 容器名
  • 啓動守護式容器:
//-d 使用後臺的方式來執行命令
docker run -d 鏡像名 [COMMAND] [ARG...]
  • 查看容器日誌:
docker logs [-f] [-t] [--tail] 容器名
    -f --follows=true|false 默認false
    -t timestamps=true|false 默認false
    --tail="all"
  • 查看容器內進程:
docker top 容器名
  • 在運行中的容器內啓動新進程:
docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
  • 中止守護式容器:nginx

    備註:重啓容器後容器的ip和端口映射都會發生改變。web

docker stop 容器名 //發送一個信號給容器,等待中止
docker kill 容器名 //直接中止容器

設置容器的映射端口

端口映射

run [-P] [-p]

//將爲容器暴露的全部端口進行映射
-P,publish-all=true | false 默認爲false
    docker run -P -i-t ubuntu /bin/bash
    
//指定映射端口
-p,--publish=[]

containerPort //只制定容器的端口(宿主機的端口是隨機映射的)
    docker run -p 8080:80 -i -t ubuntu /bin/bash

hostPort:containnerPort //同時指定宿主機的端口和容器的端口(一一對應)
    docker run -p 8080:80 -i -t ubuntu /bin/bash
    
ip::containerPort //指定ip和容器的端口
    docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
    
ip:hostPort:containerPort //ip、宿主機端口和容器端口都進行指定
    docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

查看端口映射

dokcer port 容器名

練習:在容器中部署靜態網站

//建立映射80端口的交互式容器
docker run -p 80 --name=web -i -t b2ab0ed558bb /bin/bash    
//安裝Nginx
yum install -y nginx

//安裝文本編輯器vim
yum install vim

//驗證網站訪問
docker port web //查看端口

鏡像

  • 列出鏡像
docker images [OPTSIONS][REPOSITORY]
        -a,--all=false  //默認不顯示中間層的鏡像
        -f,--filter=[]  //顯示時的過濾條件
        --no-trunc=false  //不使用截斷的形式來顯示數據(默認會截斷惟一id)
        -q,--quiet=false  //只顯示鏡像的惟一id
  • 鏡像的倉庫

REPOSITORY 倉庫 鏡像的集合docker

  • TAG 標籤 默認使用latest標籤shell

  • 查看鏡像的詳細信息(inspect也支持容器的查看)ubuntu

docker inspect [OPTIONS]CONTAINER|IMAGE[CONTAINER|IMAGE...]
    -f,format=""
  • 刪除鏡像
docker rmi [OPTIONS]IMAGE[IMAGE...]
    -f,--force=false 強制刪除鏡像
    --no-prune=false 會保留被刪鏡像中被打標籤的父鏡像

獲取和推送鏡像

  • 查找鏡像
    Docker Hubvim

    https://registry.hub.docker.com
    docker search [OPTIONS]TERM
        --automated=false
        --no-trunc=false 
        -s,--stars=0
  • 拉取鏡像api

    docker pull [OPTIONS] NAME[:TAG]
        -a,all-tags=false 下載所有標記的鏡像
  • 推送鏡像bash

    docker push NAME[:TAG]

構建鏡像

保存對容器的修改,並再次使用
自定義鏡像的能力
以軟件的形式打包並分發服務及其運行環境socket

  • 經過容器構建

會暫停正在使用的容器tcp

```
docker commit [OPTIONS] CONTAINER [REPOSITORY][:TAG]
    -a,--author=""  鏡像的做者
    -m,-message="" 鏡像構建的信息
    -p,--pause=true 能夠不暫停正在使用的容器
```
  • 經過Dockerfile文件構建
    1. 建立Dockerfile文件

    2. 運行docker build命令

    docker build [OPTIONS] PATH | URL | -
        --force-rm=false
        --no-cache=false
        -pull==false
        -q,--quiet=false
        --rm=true
        -t,--tag=""
    ### dockerC/S模式

Remote API

鏈接方式(客戶端與服務端的守護進程)

  • unix://var/run/docker.sock
  • tcp://host:port
  • fd://socketfd

Docker守護進程的配置和操做

  • 查看守護進程

    ps -ef |grep docker
    sudo status docker
  • 使用service命令管理

    啓動
    sudo service docker start
    
    中止
    sudo service docker stop
    
    重啓
    sudo service docker restart
相關文章
相關標籤/搜索