docker 基本使用

2021-10-24 05:24:58 字數 4097 閱讀 6219

# 啟動容器 i:互動,t:終端

# d:後台,p:主機埠對映到容器埠,p:容器埠隨機對映到主機 v:掛載目錄

# --restart=always 總是重啟,--restart=on-failure:5 最多重啟五次

docker run -it 49f51f6d72c3 /bin/bash

docker ps -a # 檢視所有容器

docker inspect 49f51f6d72c3 # 檢視容器詳細資訊

docker start 49f51f6d72c3 # 啟動停止的容器

docker stop 49f51f6d72c3 # 停止啟動的容器

docker restart 49f51f6d72c3 # 重啟容器

docker attach 49f51f6d72c3 # 進入容器,退出容器停止

docker exec -it 49f51f6d72c3 /bin/bash # 進入容器,退出容器不停止。本質是在容器內執行程序

docker export 49f51f6d72c3 > centos.tar # 匯出容器快照

cat centos.tar | docker import - centos_import:v1 # 匯入快照

docker rm -f 8b3349721547 # 刪除容器

docker container prune # 刪除所有停止的容器

docker port # 檢視埠對映

docker logs 49f51f6d72c3 # 檢視容器內部標準輸出,f: 像tail -f一樣

docker top 49f51f6d72c3 # 檢視容器內部執行的程序

docker images # 顯示本地所有映象

docker pull centos # 拉取映象

docker push lk981008/my # 將 dockerfile 推送到倉庫

docker search tomcat # 搜尋映象

docker rmi 9d9aef62c548 # 刪除映象

# 不推薦以下構建映象,推薦使用 dockerfile

# 提交副本,m:描述資訊,a:作者

docker commit -m="has update" -a="wang" 49f51f6d72c3 wang/centos:v1

docker build -t wang/centos:v2 . # dockerfile構建映象 t:映象名

# 建立新的docker網路,d:指定網路型別,有bridge、overlay

docker network create -d bridge test-net

dockeer network ls # 檢視docker網路

# 啟動乙個容器並加入網路,name:命名容器,network:連線docker網路

# 同docker網路下ping容器名能ping通

docker run -it --name test1 --network test-net centos /bin/bash

# rm:退出容器自動清理內部檔案,h:指定主機名,dns:指定dns

docker run -it --rm -h test --dns=114.114.114.114 centos /bin/bash

配置 dns 也可以通過配置/etc/resolv.conf檔案

build 構件預設檔名是dockerfile

from:定製映象都是基於 from 的映象

from centos
run:執行後面跟著的命令

dockerfile 的指令每執行一次都會在 docker 上新建一層

cmd:類似於run,也有倆種格式,但是執行時機不同,在開啟容器時呼叫。會被docker run額外引數覆蓋

entrypoint:類似於cmd,但不會被docker run額外引數覆蓋

copy:從上下文目錄複製檔案或目錄到容器指定路徑

copy [--chown=

:]《源路徑1>

... 《目標路徑》

copy [--chown=

:]["《源路徑1>",... "《目標路徑》"

]copy test.sh /my/test/

# --chown=:更改使用者與組

# 檔案要與dokerfile同一目錄下

env:設定環境變數,在 build 和容器內都有效

# 以下兩者相等

env a hello

env b=world

arg:設定環境變數,但是只在 build 有效

arg c=

'hello world'

# build中 --build-arg 進行覆蓋

docker build -t wang/centos:v3 . --build-arg c=

"world hello"

expose:宣告要對映的埠

workdir:指定工作目錄,只有該目錄會一直存在。進入 bash 也預設在這個目錄

workdir /my/test
user:指定映象使用什麼使用者去執行

user user

user user:group

user uid

user uid:gid

user user:gid

user uid:group

volume:給容器新增卷。可以在容器共享和重用,卷的修改是即時生效的;除非沒有容器使用它,否則會乙隻存在

volume ["/opt/project"]

volume ["/opt/project", "/data"]

add:將構建環境下的檔案複製乙份給構建好的容器。如果是歸檔(.tar .gzip …)檔案還會解壓。會根據末尾是否帶/來判斷是否是目錄

add /source/little_film.tar.gz /opt/film/

copy:與add相似,但是不會做解壓

onbuild:觸發器,當這個映象被用作基礎映象時會觸發

onbuild run echo hello
進入容器發現沒有 vi 等亂七八糟的東西咋辦?

$ vi hello 

vi: command not found

檢視 linux 發行版本

$ cat /etc/os-release

pretty_name=

"debian gnu/linux 10 (buster)"

name=

"debian gnu/linux"

version_id=

"10"

version=

"10 (buster)"

version_codename=buster

id=debian

home_url=

""support_url=

"support"

bug_report_url=

""

發現這個是 debian,ok 使用apt-get當作yum

apt-get update # 更新

apt-get

install -y vim # 想下啥下啥

docker基本使用

docker 建立及執行 1.建立乙個資料夾 docker 3.執行 docker build t myimage v1 或docker build t myimage 命令介紹 myimage v1 myimage是映象名稱,v1是版本。版本可以不寫 不寫時,版本號為latest 4.檢視映象 d...

docker基本使用

在專案中使用docker部署環境,docker常見的命令如下 docker命令使用 1 檢視docker資訊 docker version docker info 2 檢視容器日誌 docker logs f 容器id 3 檢視docker中所有映象 docker images 4 查詢docker...

Docker 基本使用

安裝 更新相關軟體 新增docker源 curl fssl sudo apt key add sudo add apt repository deb arch amd64 bionic stable sudo apt update apt cache policy docker ce 下面是安裝資訊...