docker 基礎命令

2022-05-06 15:06:10 字數 3243 閱讀 6957

檢視命令: docker --help

docker run --name centos -d -h centos --rm -v /opt/:/opt/ wenbronk/centos /bin/bash

總得來說, docker的命令為以下幾種: 

1

, 搜尋映象

docker search alpine

2docker pull apline

3, 檢視映象

docker images

4, 刪除映象

docker rmi apline

a), 輸出hellowork, 執行後立馬退出

docker run centos /bin/echo '

helloworld

'

b), 開啟終端並保持在容器中

docker run --name centos -d -it centos /bin/bash

引數解釋:   --name: 指定執行名字, 

--i: 始終保持鏈結狀態

-t: 開啟偽終端並繫結在docker上

/bin/bash: 需要執行的命令

c), 後台執行:  加-d

d), 埠對映: 不加的話, 隨機對映, 使用: 

-p 主機埠:容器埠

docker run -d --name nginx -p 81:80 nginx
使用 -p ip:hostport:containerport 可以指定主機的多個ip:port

也可以使用 -p 指定多個 埠

docker stop container_id | containe_name

docker ps -a  # -a指檢視所有, 不加只檢視正在執行的

docker exec -it /bin/bash container_name 

docker attach contain_id: 進入後退出, 容器會退出

-i: 始終開啟鏈結

-t: 開啟偽終端使用繫結在docker上

/bin/bash: 需要docker容器執行的命令

需要工具包:

yum install -y util-linux
檢視docker 的pid

docker inspect --format "

}" container_id | container_name

使用 nsenter 進入容器

nsenter --target 23907 --mount --uts --ipc --net --pid
寫成指令碼鏈結進容器: 

# /bin/bash

cname=$1

if [ ! -n "$1" ]; then

echo the param container_id or container_name is must

exit 0

ficpid=$(docker inspect --format "}" $cname)

nsenter --target "$cpid" --mount --uts --ipc --net --pid

docker start contain_id

docker rm

docker commit -m '

yourtags

' container_id wenbronk/contaner_name

資料卷是經過特殊設計的容器, 可繞過聯合檔案系統(uts), 為乙個或多個容器提供服務

目的是資料的永久化, 完全獨立於容器生命週期, 不會存在類似垃圾**機制

可新增 -v /data:/opt/nginx/log:ro   新增 ro 引數 使得容器內唯讀

可通過 docker inspect container_id 檢視是否掛載資料卷

docker run -d --name=tomcat -v /b2b:/test -it centos /bin/bash
此時操作本地的 /b2b 目錄, 就會在docker容器下看到 相應的檔案管理

會自動建立  /b2b目錄

dockerfile中使用 [volume] 掛載資料卷, 但不可以是本地存在的, 啟動時會建立相同名字的資料卷

相同映象的不同容器, 建立的資料卷不同, 因此使用資料卷容器

命名的容器掛載資料卷, 其他容器通過掛載容器掛載資料卷, 

# 啟動乙個容器作為資料卷容器

docker run -it -v /b2b:/test --name datatest centos /bin/bash

# 啟動兩外兩個容器鏈結資料卷

docker run -it --volumes-from datatest --name db1 centos

docker run -it --volumes-from datatest --name db2 centos
這樣 db1 和 db2 都可以訪問該目錄, 且做的更改對其他容器是可見的

即使刪除了容器  datatest, db1, 和db2 也可以正常進行資料共享, 資料卷容器的存在僅僅為了配置資訊傳遞

避免暴露伺服器真是路徑

備份

docker run --volumes-from dbdata -v $(pwd):/backup --name worker centos tar zcf /backup/backup.tar.gz /dbdata
建立資料卷容器: 

docker run -v /dbdata/dbdata --name db centos /bin/bash
進行資料恢復

docker run --volumes-from db -v $(pwd):/backup  centos tar xf /backup/backup.tar.gz

Docker基礎命令

下面簡單介紹一下docker常用的一些基礎命令 在ubuntu中安裝docker sudo apt get install docker.io 檢視docker的版本資訊 docker version 檢視安裝docker的資訊 docker info 檢視本機docker中存在哪些映象 docke...

docker基礎命令

刪除存在的 sudo apt get remove docker docker engine docker.io sudo apt get update 安裝依賴 新增docker 公共金鑰 curl fssl sudo apt key add 設定版本庫型別 ubuntu18.04對應版本 bio...

Docker基礎命令

命令的詳細說明與演示,可以參考 systemctl start docker 啟動docker服務 service docker start systemctl stop docker 關閉docker服務 service docker stop systemctl restart docker 重...