docker 安裝:
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl start docker
基礎(chǔ)命令
鏡像:
docker search
docker images
docker pull
docker push
docker save
docker load
docker tag
docker rmi
容器:
docker run
docker start
docker stop
docker restart
docker rm
docker kill
docker logs
docker history
docker exec -it bash
docker attach
docker build
docker stats
docker commit
docker ps
docker ps -a
docker ps -a -q
docker -s -a -l
docker rm -f `docker ps -a -q `
docker history
docker stats
docker images -q | xargs docker rm -f !!! 危險(xiǎn)
docker ps -a |fgrep -i exit | awk '{print $1}' | xargs docker rm -f
docker rm -f `docker ps -a |fgrep -i exit | awk '{print $1}'`
for name in `docker ps -a |fgrep -i exit | awk '{print $1}'`;do docker restart $name ; sleep 1 ;done
echo user{1..100} | xargs -n1 useradd
docker ps -a | grep -i exit | awk '{print $1}' | xargs docker restart
docker ps -a |fgrep -i exit | awk '{print $1}' | xargs docker rm -f
time for name in {1..100};do docker run -dit 08b152afcfae ;done >> /dev/null
docker ps -a |awk 'NR>1{print $1}' | xargs docker stop
docker ps -a -q | xargs docker start
docker run 啟動(dòng)參數(shù)
-d 后臺(tái)運(yùn)行
-i 交互式運(yùn)行
-t tty終端
--memory 限制容器可以使用的內(nèi)存,如果沒有指定 --memory-swap 那么默認(rèn)和--memory一樣大
eg: --memory 200m 沒有--memory-swap參數(shù)苞七,那么容器可以使用的內(nèi)存為400m
--memory-swap 設(shè)置swap區(qū)可以使用的內(nèi)存大小姑宽,默認(rèn)和--memory一樣大婆排,必須>=--memory
--cpu-shares 表示占有cpu的相對(duì)權(quán)重
eg:假設(shè)在同一臺(tái)物理主機(jī)上啟動(dòng)了如下2個(gè)容器吩屹,容器1占用的cpu是容器2占有的cpu的2倍屋灌。
同一臺(tái)物理主機(jī)上
容器1:
docker run -d --cpu-shares 10 容器名
容器2:
docker run -d --cpu-shares 5 容器名
--name 給容器起的名字
--net 指定容器運(yùn)行的網(wǎng)絡(luò)(也可以是自己創(chuàng)建的網(wǎng)絡(luò) docker network create --subnet=172.18.0.0/24 mynet)
-v 指定volume的路徑
data volume模式:
別名:容器里面的路徑
mysql:/var/lib/mysql
/var/lib/mysql 為Dockerfile 中的volume的值
使用 docker volume ls 命令查看
本地創(chuàng)建 mysql 數(shù)據(jù)卷:docker create volume --name mysql
bind mouting模式:
本地路徑:容器路徑
/var/data:/var/容器目錄
本地目錄和容器目錄中的文件修改都會(huì)實(shí)時(shí)同步益眉。
--ip 指定容器的ip地址
-P 隨機(jī)映射一個(gè)端口
-p 本地端口:容器端口袭灯。 將容器中的某個(gè)端口映射到本地的某個(gè)端口上
-e 設(shè)置環(huán)境變量
--volumes-from 參數(shù)用于連接某個(gè)指定容器的卷刺下,從而可以訪問到指定容器中的所有的卷。示例:blog_demo表示新容器中掛載了blog_demo容器中所有的卷稽荧。
--rm 表示容器運(yùn)行完成后自動(dòng)刪除
-h 設(shè)置host主機(jī)的名稱
官方版
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
02.
03. -d, --detach=false 指定容器運(yùn)行于前臺(tái)還是后臺(tái)橘茉,默認(rèn)為false
04. -i, --interactive=false 打開STDIN,用于控制臺(tái)交互
05. -t, --tty=false 分配tty設(shè)備姨丈,該可以支持終端登錄捺癞,默認(rèn)為false
06. -u, --user="" 指定容器的用戶
07. -a, --attach=[] 登錄容器(必須是以docker run -d啟動(dòng)的容器)
08. -w, --workdir="" 指定容器的工作目錄
09. -c, --cpu-shares=0 設(shè)置容器CPU權(quán)重,在CPU共享場(chǎng)景使用
10. -e, --env=[] 指定環(huán)境變量构挤,容器中可以使用該環(huán)境變量
11. -m, --memory="" 指定容器的內(nèi)存上限
12. -P, --publish-all=false 指定容器暴露的端口
13. -p, --publish=[] 指定容器暴露的端口
14. -h, --hostname="" 指定容器的主機(jī)名
15. -v, --volume=[] 給容器掛載存儲(chǔ)卷,掛載到容器的某個(gè)目錄
16. --volumes-from=[] 給容器掛載其他容器上的卷惕鼓,掛載到容器的某個(gè)目錄
17. --cap-add=[] 添加權(quán)限筋现,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities
18. --cap-drop=[] 刪除權(quán)限,權(quán)限清單詳見:http://linux.die.net/man/7/capabilities
19. --cidfile="" 運(yùn)行容器后箱歧,在指定文件中寫入容器PID值矾飞,一種典型的監(jiān)控系統(tǒng)用法
20. --cpuset="" 設(shè)置容器可以使用哪些CPU,此參數(shù)可以用來容器獨(dú)占CPU
21. --device=[] 添加主機(jī)設(shè)備給容器呀邢,相當(dāng)于設(shè)備直通
22. --dns=[] 指定容器的dns服務(wù)器
23. --dns-search=[] 指定容器的dns搜索域名洒沦,寫入到容器的/etc/resolv.conf文件
24. --entrypoint="" 覆蓋image的入口點(diǎn)
25. --env-file=[] 指定環(huán)境變量文件,文件格式為每行一個(gè)環(huán)境變量
26. --expose=[] 指定容器暴露的端口价淌,即修改鏡像的暴露端口
27. --link=[] 指定容器間的關(guān)聯(lián)申眼,使用其他容器的IP瞒津、env等信息
28. --lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc時(shí)使用
29. --name="" 指定容器名字括尸,后續(xù)可以通過名字進(jìn)行容器管理巷蚪,links特性需要使用名字
30. --net="bridge" 容器網(wǎng)絡(luò)設(shè)置:
31. bridge 使用docker daemon指定的網(wǎng)橋
32. host //容器使用主機(jī)的網(wǎng)絡(luò)
33. container:NAME_or_ID >//使用其他容器的網(wǎng)路,共享IP和PORT等網(wǎng)絡(luò)資源
34. none 容器使用自己的網(wǎng)絡(luò)(類似--net=bridge)濒翻,但是不進(jìn)行配置
35. --privileged=false 指定容器是否為特權(quán)容器屁柏,特權(quán)容器擁有所有的capabilities
36. --restart="no" 指定容器停止后的重啟策略:
37. no:容器退出時(shí)不重啟
38. on-failure:容器故障退出(返回值非零)時(shí)重啟
39. always:容器退出時(shí)總是重啟
40. --rm=false 指定容器停止后自動(dòng)刪除容器(不支持以docker run -d啟動(dòng)的容器)
41. --sig-proxy=true 設(shè)置由代理接受并處理信號(hào),但是SIGCHLD有送、SIGSTOP和SIGKILL不能被代理
dockerfile常用指令:
- FROM 基礎(chǔ)鏡像
- RUN 制作鏡像過程中需要的執(zhí)行命令(安裝服務(wù))
- CMD 容器啟動(dòng)的時(shí)候執(zhí)行的初始命令淌喻,容易被替換(啟動(dòng)服務(wù))
- ENTRYPOINT 容器啟動(dòng)的時(shí)候執(zhí)行的初始命令,不能被替換雀摘,如果同時(shí)使用CMD和- - - ENTRYPOINT裸删,cmd命令將作為ENTRYPOINT命令的參數(shù)
- ADD 把dockerfile當(dāng)前目錄下的文件拷貝到容器中(自動(dòng)解壓tar包)
- COPY 把dockerfile當(dāng)前目錄下的文件拷貝到容器中(不解壓tar包)
- WORKDIR 指定容器的默認(rèn)工作目錄(類似cd)
- EXPOSE 鏡像要暴露的端口(docker run -P大寫)
- VOLUME 持久化卷(自動(dòng)創(chuàng)建隨機(jī)名字的卷)
- ENV 環(huán)境變量(ssh的密碼,數(shù)據(jù)庫(kù)的密碼)
- LABEL 鏡像的屬性標(biāo)簽
- MAINTAINER 管理者標(biāo)識(shí)
docker網(wǎng)絡(luò)
- bridge 默認(rèn)類型 NAT模式
- host host類型,使用宿主機(jī)網(wǎng)絡(luò)届宠,網(wǎng)絡(luò)性能最高
- container 容器類型烁落。使用其他容器共用網(wǎng)絡(luò),k8s中使用
- none 沒有網(wǎng)絡(luò)豌注,上不了外網(wǎng)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者