0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

docker的基本命令和使用示例

馬哥Linux運維 ? 來源:博客園wang_yb ? 2025-01-06 15:59 ? 次閱讀

概述

起源

2013 年由 DotCloud 公司開源出來的容器管理工具
DotCloud 公司是一家 PAAS 服務(wù)提供商,從 docker 的出身也可以看出它的主要功能和方向

技術(shù)原理

開始時是基于 LXC 容器技術(shù)

cgroup: 將任意進程進行分組化管理,同時還可以控制進程的資源占用(CPU, 內(nèi)存等等)情況

namespace: 讓每個進程組有獨立的 PID, IPC 和網(wǎng)絡(luò)空間

解決的痛點

打包部署

運行環(huán)境標準化

更加高效的利用物理機

docker 基本命令

容器的一個標準的生命周期包括:創(chuàng)建,啟動,停止,終止和移除

docker pull busybox # 遠程下載 images

docker run -it –rm –name busybox busybox # 創(chuàng)建容器,名稱為 busybox

docker stop/kill busybox # 停止/強行停止 容器

docker start/restart busybox # 啟動/重新啟動 容器

docker rm busybox # 移除容器

常用命令

docker exec 可以運行 容器中的命令

docker cp 可以在主機和容器之間復制文件

docker inspect 查看容器的詳細信息,也可以查看鏡像詳細信息

docker stats 容器的資源占用信息

docker events 返回 docker 主機上發(fā)生的所有 docker 事件流

docker logs 監(jiān)控容器的日志

docker top 查看容器內(nèi)運行的進程

docker 使用示例(busybox)

docker 容器是完全隔離的運行環(huán)境,但實際使用中,難免需要和外部或者 docker 容器進行交互。
比較常用的交互主要有 環(huán)境變量,磁盤,網(wǎng)絡(luò)

環(huán)境變量

docker run -it --rm -e MY_NAME=wangyubin busybox env

外部的環(huán)境變量可以在容器啟動的時候注入到容器中

磁盤

容器會共享鏡像中的內(nèi)容,容器自己的狀態(tài)才會保存在磁盤上。

docker volume ls # 查看所有容器占用的磁盤名稱
docker volume inspect VOL_NAME  # 查看具體的磁盤信息

容器中的文件,不會改變 image

在一個容器中創(chuàng)建文件(test.txt)

$ docker run -it --rm busybox
/ # touch test.txt
/ # ls
bin       etc       proc      sys       tmp       var
dev       home      root      test.txt  usr

重新啟動的容器中是不包含這個文件的

$ docker run -it --rm busybox
/ # ls
bin   dev   etc   home  proc  root  sys   tmp   usr   var

容器掛載外部的文件系統(tǒng)

如果希望容器之間共享文件,或者將文件放在容器之外來管理,可采用如下方式 容器啟動時掛載外部文件夾

docker run -it --rm -v /home/wangyubin/tmp/volume:/share-dir busybox
cd share-dir
touch test.txt

另一個容器也掛載這個文件夾

docker run -it --rm -v /home/wangyubin/tmp/volume:/share-dir busybox
/ # ls share-dir
test.txt

網(wǎng)絡(luò)

容器中的服務(wù)默認只有當前容器可以訪問,容器的宿主和其他容器都是無法訪問的。

通過暴露端口,讓宿主可以訪問容器內(nèi)服務(wù)

通過 nc 命令模擬一個服務(wù)

$ docker run -it -p 1234:1234 --rm busybox
/ # nc -l -p 1234

在宿主機上可以通過 docker ps 命令看到暴露的端口

docker ps

nc localhost 1234   # 連接上本地的 1234 端口,就可以和 docker 容器互發(fā)消息

容器創(chuàng)建在同一網(wǎng)絡(luò)上

創(chuàng)建容器運行的網(wǎng)絡(luò),然后將 2 個容器啟動到同一個網(wǎng)絡(luò)上

$ docker network create test
a85b5589234b701b1237a364f7796b47e2d1ba4506740767c581a3d62d9e8f48

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
a85b5589234b        test                bridge              local
... ...

啟動第一個 docker,name 為 test01,并在容器中用 nc 命令模擬一個服務(wù)

$ docker run -it --rm --name test01 --network test busybox
/ # nc -l -p 1234

啟動第二個 docker,name 為 test02,和 test01 在同一個網(wǎng)絡(luò)上

$ docker run -it --rm --name test02 --network test busybox
/ # nc test01 1234
hello

由于在同一個網(wǎng)絡(luò)上,可以通過 test01 這個名稱直接連接另一個容器

啟動第三個 docker,name 為 test03,使用默認的網(wǎng)絡(luò)

$ docker run -it --rm --name test03 busybox
/ # nc test01 1234
nc: bad address 'test01'

由于 test03 和 test01 不在一個網(wǎng)絡(luò)上,所以無法互通

鏈接:https://www.cnblogs.com/wang_yb/p/8625003.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3034

    瀏覽量

    74129
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    496

    瀏覽量

    22074
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    477

    瀏覽量

    11871

原文標題:docker 使用示例(busybox)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    gdb基本命令怎么使用?

    gdb基本命令怎么使用?
    發(fā)表于 12-24 06:32

    docker基礎(chǔ)知識和使用bmnnsdk時的docker常用命令

    ),隨后在docker環(huán)境中移動至/wokspace/的子目錄下。 二、有用的命令 2.1 關(guān)于image與container 2.1.1修改鏡像腳本命名自己的image 打開
    發(fā)表于 09-18 07:59

    HP Unix系統(tǒng)維護基本命令

    HP Unix系統(tǒng)維護基本命令 一、基本命令 1) tail 和 head    使用tail命令可以查看文件的尾部,head命令則查看文
    發(fā)表于 01-30 17:39 ?1975次閱讀

    linux入門與基本命令相關(guān)資料下載

    linux入門與基本命令
    發(fā)表于 03-28 16:52 ?11次下載

    linux入門與基本命令1相關(guān)資料下載

    linux入門與基本命令1相關(guān)資料下載
    發(fā)表于 03-28 16:55 ?18次下載

    linux系統(tǒng)入門與基本命令-1版 相關(guān)資料下載

    linux系統(tǒng)入門與基本命令-1版
    發(fā)表于 03-28 16:58 ?0次下載

    學習 Docker 容器的 8 個命令分享

    利用這 8 個命令可以學習 Docker 容器的基本管理方式。這是一個為 Docker 初學者準備的,帶有示范命令輸出的指南。
    發(fā)表于 06-22 12:03 ?1377次閱讀
    學習 <b class='flag-5'>Docker</b> 容器的 8 個<b class='flag-5'>命令</b>分享

    linux基本命令說明參數(shù)講解教程

    linux基本命令說明參數(shù)講解教程說明。
    發(fā)表于 03-25 16:00 ?9次下載

    Modelsim/Questasim基本命令

    Modelsim/Questasim基本命令
    發(fā)表于 10-21 15:06 ?1次下載

    docker 搜索鏡像,docker查看鏡像詳細信息(docker下載鏡像命令)

    Docker Hub是集中管理的Docker鏡像注冊中心。通過Docker 用戶可以在注冊中心搜索、下載和使用CLI命令行工具中的鏡像。以下是常用的
    的頭像 發(fā)表于 07-19 09:46 ?1879次閱讀

    docker常用基礎(chǔ)命令

    作為嵌入式開發(fā)工程師,需要用到的docker命令基礎(chǔ)解析與使用。
    發(fā)表于 09-18 17:54 ?2次下載

    docker exec命令的使用方法

    有用的命令,用于在正在運行的容器中執(zhí)行命令。 在本文中,我將詳細介紹Docker exec命令的使用方法,包括命令格式、參數(shù)選項、使用
    的頭像 發(fā)表于 11-23 09:33 ?1652次閱讀

    linux關(guān)閉docker命令

    在 Linux 系統(tǒng)中,關(guān)閉 Docker 的操作可以通過以下多種方式進行。本文將詳細講解每一種方式,并提供示例代碼和命令,以幫助讀者更好地理解和實踐。 使用 docker
    的頭像 發(fā)表于 11-23 09:39 ?2870次閱讀

    GD32VW553基本命令用戶指南應用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553基本命令用戶指南應用說明.pdf》資料免費下載
    發(fā)表于 12-14 09:56 ?0次下載
    GD32VW553基<b class='flag-5'>本命令</b>用戶指南應用說明

    關(guān)于Docker 的清理命令集錦

    這篇文章主要介紹了Docker 清理命令集錦,需要的朋友可以參考下 復制代碼代碼如下: docker kill $(docker ps -a -q) ?刪除所有已經(jīng)停止的容器 復制代碼
    的頭像 發(fā)表于 06-13 15:56 ?393次閱讀