# 啟動容器 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 下面是安裝資訊...