Docker 基本命令和使用

Docker 基本命令

systemctl start docker : 啓動 Dockerdocker

systemctl stop docker : 中止 Dockervim

systemctl restart docker : 重啓 Dockercentos

systemctl enable docker : 開機啓動 Dockerbash

docker info : 查看 Docker 概要信息app

docker --help :查看 Docker 幫助文檔rest

docker version : 查看Docker版本信息日誌

Docker 鏡像 基本命令

一、docker images or docker image ls : 列出本機全部鏡像code

options 可選參數orm

可選參數 參數描述
-a 顯示全部鏡像(包括中間層)
-q 只顯示鏡像Id
-qa 能夠組合使用
--digests 能夠顯示鏡像的摘要信息
--no-trunc 能夠顯示完整的鏡像信息

二、docker search : 搜索鏡像rabbitmq

options 可選參數

可選參數 參數描述
--no-trunc 顯示完整的鏡像描述
-s 列出收藏數不小於指定值的鏡像
--automated 只列出Docker Hub自動構建類型的鏡像

docker pull : 拉取鏡像

​ dockers pull 鏡像名稱 :

​ 注意:不加TAG,默認下載最新版本 latest

三、docker rmi : 刪除鏡像

  1. 刪除單個

    docker rmi 鏡像名稱:[TAG]  若是不寫 TAG 則默認刪除最新版 latest
  2. 有鏡像生成的容器在運行的時候,會刪除失敗,須要加 -f 強制刪除

    [root@iZbp17khuqdfkef3nl1db3Z ~]# docker rmi rabbitmq
    Error response from daemon: conflict: unable to remove repository reference "rabbitmq" (must force) - container 99693943e972 is using its referenced image 84bc4895f175
    docker rmi -f 鏡像名稱1:[TAG] 鏡像名稱2:[TAG] 多個鏡像之間空格隔開

Docker 容器 基本命令

  1. docker run [OPTIONS] image [COMMAND][ARG...] : 建立並啓動容器

    options 可選參數

    可選參數 參數描述
    --name='容器新名字' 爲容器指定一個名稱
    -i 以交互模式運行容器、一般和 -t 同時使用
    -t 爲容器從新分配一個僞輸入終端,一般和 -i 同時使用
    -d 後臺運行容器,並返回容器id
    • docker run --name 別名 鏡像id : 啓動普通容器
    • docker run -it --name 別名 鏡像Id 來運行一個容器,取別名,交互模式運行,以及分配一個僞終端 : 啓動交互式容器
    • docker run -di --name 別名 鏡像Id:以守護式方式建立並啓動容器
  2. docker ps [OPTIONS] : 列出容器

    options 可選參數

    可選參數 參數描述
    -a 顯示全部容器,包括未運行的
    -f 根據條件過濾顯示的內容
    --format 指定返回值的模板文件
    -l 顯示最近建立的容器
    -n 顯示最近建立的 n 個容器
    --no-trunc 不截斷輸出
    -q 靜默模式,只顯示容器編號
    -s 顯示總的文件大小
    -qa 列出全部容器id
  3. exit :容器中止退出

    ctrl + p + q : 容器不中止退出

    docker attach 容器Id or 容器名 : 進入容器

    dockr start 容器id or 容器名 : 啓動容器

    dockr restart 容器id or 容器名 : 重啓容器

    docker stop 容器id or 容器名 :中止容器

    docker kill 容器id or 容器名 : 暴力中止,直接殺死進程(不推薦)

    docker rm 容器id : 若是刪除正在運行的容器,會報錯,若是須要刪除,須要強制刪除

    docker rm 容器Id -f : 強制刪除

    docker rm -f $(docker ps -qa) : 刪除全部容器

Docker 容器與宿主機端口映射

docker run [OPTIONS] IMAGE [COMMAND] [ARG...] : docker run :建立一個新的容器並運行一個命令

docker run -i -t -p 宿主機端口:容器應用端口 --name 別名 鏡像id : Docker 容器與宿主機端口映射

options 可選參數

可選參數 參數描述
-d 後臺運行容器,並返回容器ID
-i 以交互模式運行容器,一般與 -t 同時使用
-P(大寫p) 隨機端口映射,容器內部端口隨機映射到主機的高端口
-p(小寫p) 指定端口映射,格式爲:主機(宿主)端口:容器端口
--name 爲容器指定一個名稱

修改 Docker 默認存儲位置,Docker 容器遷移

Docker中默認存放鏡像和容器的目錄是:/var/lib/docker/ ,/var下比較容易滿建議遷移。

個人系統是 Centos7,具體解決步驟以下:

  1. 中止Docker 服務:

    systemctl stop docker; //每一個liunx版本的命令不同。
  2. 在空間充足的磁盤下建立新的docker目錄

    mkdir -p /data/docker;   //在根目錄下新建
  3. 遷移/var/lib/docker目錄下面的文件到剛纔新建好的 /data/docker下面

    cp -rvf /var/lib/docker/* /data/docker
  4. 修改 Docker 配置

    1. vim /etc/systemd/system/docker.service.d/devicemapper.conf

    2. 在文件末尾添加:--graph=/data/docker

      devicemapper.conf文件的內容以下:

      [Service]
          ExecStart=
          ExecStart=/usr/bin/dockerd --insecure-registry=私服地址 --graph=/home/docker/lib

      注意:若是/etc/systemd/system/docker.service.d/devicemapper.conf,這個路徑找不到的話,就新建,新建以後加入內容,沒有私服地址的話就能夠去掉」--insecure-registry=私服地址」。

  5. 重載配置,重啓docker

    systemctl daemon-reload;
    systemctl restart docker;
    systemctl enable docker;
  6. 啓動成功後,肯定容器沒問題後刪除/var/lib/docker/目錄中的文件,而後就OK了。

查看容器日誌

docker logs : 獲取容器的日誌

語法 :docker logs [OPTIONS] CONTAINER

options 可選參數

可選參數 參數描述
-f 跟蹤日誌輸出
--since 顯示某個開始時間的全部日誌
-t 顯示時間戳
--tail 僅列出最新N條容器日誌

Docker 容器目錄掛載

​ 咱們 在建立容器的時候,將宿主機的目錄與容器內的目錄進行映射,這樣咱們就能夠實現宿主機和容器目錄的雙向數據自動同步。

​ 咱們能夠經過容器目錄掛載,可以輕鬆實現代碼上傳、配置修改、日誌同步等需求。

語法 : docker run -i -t -v /宿主機目錄:/容器目錄 鏡像id

多目錄掛載 :docker run -i -t -v /宿主機目錄:/容器目錄 -v/宿主機目錄2:/容器目錄2 鏡像id

注意 :若是同步多級目錄,可能會出現權限不足的提示,只須要添加 --privileged=true 來解決掛載的目錄沒有權限的提示問題。

Docker容器啓動的時候,若是要掛載宿主機的一個目錄,能夠用-v參數指定。

譬如我要啓動一個centos容器,宿主機的/data/hData目錄掛載到容器的/cData目錄,可經過如下方式指定:

docker run -i -t -v /data/hData:/cData 470671670cac

注意點

  1. 容器目錄不能夠爲相對路徑
  2. 宿主機目錄若是不存在,則會自動生成
相關文章
相關標籤/搜索