天天看點

Docker 常用指令清單Docker 架構

Docker 架構

參考:https://www.runoob.com/docker/docker-architecture.html

Docker 使用用戶端-伺服器 (C/S) 架構模式,使用遠端API來管理和建立Docker容器。

Docker 容器通過 Docker 鏡像來建立。

容器與鏡像的關系類似于面向對象程式設計中的對象與類。

Docker 面向對象
容器 對象
鏡像
Docker 常用指令清單Docker 架構
Docker 鏡像(Images) Docker 鏡像是用于建立 Docker 容器的模闆。
Docker 容器(Container) 容器是獨立運作的一個或一組應用。
Docker 用戶端(Client) Docker 用戶端通過指令行或者其他工具使用 Docker API (https://docs.docker.com/reference/api/docker_remote_api) 與 Docker 的守護程序通信。
Docker 主機(Host) 一個實體或者虛拟的機器用于執行 Docker 守護程序和容器。
Docker 倉庫(Registry)

Docker 倉庫用來儲存鏡像,可以了解為代碼控制中的代碼倉庫。

Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。

Docker Machine Docker Machine是一個簡化Docker安裝的指令行工具,通過一個簡單的指令行即可在相應的平台上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

下面以安裝nginx為示例,本文章目的是:主要是有時忘記了docker指令,可以友善檢視。

搜尋鏡像:

docker search nginx
           

拉取鏡像

docker pull nginx
           

啟動容器:

docker start nginx
           

停止容器:

docker stop nginx
           

删除容器:

docker rm nginx
           

如果要重新載入 NGINX 可以使用以下指令發送 HUP 信号到容器:

$ docker kill -s HUP container-name
           

重新開機 NGINX 容器指令:

$ docker restart container-name
           

檢視運作中的容器清單:

docker ps
           

檢視所有容器清單:

docker ps -a
           

檢視安裝的鏡像:

docker images docker images nginx
           

容器重命名:

docker rename 原容器名  新容器名
           

進入容器nginx: nginx替換成xx容器名稱即可

docker exec -it nginx /bin/bash
           

輸入exit 可以跳出容器。

鏡像和容器的導入與導出:

https://www.jianshu.com/p/4e862a2a2d03

下面以安裝nginx為例:

1、查找 Docker Hub 上的 nginx 鏡像

docker search nginx
           

2、拉取鏡像

docker pull nginx
           

3、等待下載下傳完成後,我們就可以在本地鏡像清單裡查到 REPOSITORY 為 nginx 的鏡像

[email protected]:~/nginx$ docker images nginx REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 555bbd91e13c 3 days ago 182.8 MB
           

以下指令使用 NGINX 預設的配置來啟動一個 Nginx 容器執行個體:

$ docker run --name runoob-nginx-test -p 8081:80 -d nginx
           
  • runoob-nginx-test 容器名稱。
  • the -d 設定容器在在背景一直運作。
  • the -p 端口進行映射,将本地 8081 端口映射到容器内部的 80 端口。

執行以上指令會生成一串字元串,類似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,這個表示容器的 ID,一般可作為日志的檔案名。

我們可以使用 docker ps 指令檢視容器是否有在運作:

$ docker ps CONTAINER ID IMAGE ... PORTS NAMES 6dd4380ba708 nginx ... 0.0.0.0:8081->80/tcp runoob-nginx-test
           

PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。

在浏覽器中打開 http://127.0.0.1:8081/,效果如下:

Docker 常用指令清單Docker 架構

需要更多詳細指令,可以參考:https://www.runoob.com/docker/docker-tutorial.html

Docker 指令大全:

容器生命周期管理

  • run
  • start/stop/restart
  • kill
  • rm
  • pause/unpause
  • create
  • exec

容器操作

  • ps
  • inspect
  • top
  • attach
  • events
  • logs
  • wait
  • export
  • port

容器rootfs指令

  • commit
  • cp
  • diff

鏡像倉庫

  • login
  • pull
  • push
  • search

本地鏡像管理

  • images
  • rmi
  • tag
  • build
  • history
  • save
  • load
  • import

info|version

  • info
  • version
Docker 常用指令清單Docker 架構