筆記:DOCKER相關
阿新 • • 發佈:2021-02-02
技術標籤:學習筆記
映象管理
看本機存在的images
docker images
刪除某個映象,引數是ImageID:
docker rmi -f 32c921902fdb
容器管理
啟動容器:
docker run -p 1935:1935 ossrs/srs:3
檢視執行中的容器:
docker ps
檢視所有容器,包括已經停止的容器:
docker ps -a
可以指定當容器退出時,自動刪除,引數--rm
:
docker run --rm -p 1935:1935 ossrs/srs:3
刪除已經停止的容器:
docker container prune -f
容器名稱
容器ID不好記,可以用名稱,比如:
docker run --name=srs -p 1935:1935 ossrs/srs:3
或者對已有的容器,改名字:
docker rename 80d9d451bb78 srs
根據名稱啟動容器:
docker start -i srs
或者再開一個終端:
docker exec -it srs bash
環境變數
傳遞ENV環境變數
HostIP=`./auto/get_host_ip.sh` && docker run -p 1935:1935 -p 9090:9090 --env DOCKER_HOST=$HostIP \ ossrs/srs:3
Docker瘦身
如果發現自己的Docker太大,可以先把一些映象匯出,比如:
docker save ossrs/srs:3 -o srs-3.tar
刪除Docker檔案,可以選擇下面任意方式刪除Docker的磁碟檔案:
- 點
Reset
,然後點Remove all data
。 - 點
Disk
,然後點Open in Finder
,直接刪除Docker.qcow2
,然後重啟Docker。
Docker重啟後,匯入你要的映象,例如:
docker load -i srs-3.tar
這樣就可以將Docker佔用的臨時磁碟空間徹底瘦身。
拷貝檔案
可以將容器的檔案拷貝出來,先啟動容器,比如SRS的dev映象:
docker run -it --name=dev ossrs/srs:dev bash
從容器中拷貝FFmepg,比如:
docker cp dev:/usr/local/bin/ffmpeg .
埠對映
對映1935埠給SRS:
docker run -p 1935:1935 --rm ossrs/srs:3
對映TCP/1935,以及UDP/8000埠給SRS:
docker run -p 1935:1935 -p 8000:8000/udp --rm ossrs/srs:3
對映一系列埠,比如5000到6000埠:
docker run -p 50000-50010:50000-50010 --rm ossrs/srs:3
注意:不能對映太多埠,會有效能問題。
對映多個埠,TCP/1935和1985,UDP/8000埠給SRS:
docker run -p 1935:1935 -p 1985:1985 -p 8000:8000/udp --rm ossrs/srs:3
對映目錄
可以將本機的目錄,對映到容器中,比如SRS的DEV開發環境:
cd srs/trunk &&
docker run -v `pwd`:/srs -w /srs -p 1935:1935 -it --rm ossrs/srs:dev bash
這樣,就可以在CentOS容器中,編譯本機的檔案,本機也可以開啟IDE編輯。
開除錯特權
如果在容器中要啟動gdb除錯,那麼就要開特權--privileged
,比如除錯SRS:
cd srs/trunk &&
docker run --privileged -v `pwd`:/srs -w /srs -p 1935:1935 -it --rm ossrs/srs:dev bash
這樣就可以在容器中,使用GDB除錯SRS了。