1 构建镜像
构建镜像,要求context中含有Dockerfile文件
docker build -t build_repo/ljing …/docker_ljing_web/
启动构建流程,要求context中含有docker-compose.yml文件
docker-compose up -d
总结:
- Dockerfile 记录单个镜像的构建过程;
- docker-compse.yml 记录一个项目(project, 一般是多个镜像)的构建过程;
2 查看镜像
docker images
3 启动镜像(以8889端口映射容器内80端口)
docker run -p 8889:80 -d build_repo/ljing
启动镜像
docker run -it -d -p 7777:80 --name nginx7777 374e7ef78d04
4 查看全部容器实例(Running + Exited)
docker ps -a
5 bash方式进入容器shell中
docker exec -it 536a02796da7 /bin/bash
6 查看docker容器日志
docker logs #一次性打印默认的输出日志
docker logs -f ${container_name} #持续追踪打印后续的日志
docker logs --tail 10 -tf 9a21b11e8a3c #打印最后10行,并持续追踪打印,并显示时间戳
[root@techtest204-53 backup]# docker logs --help
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--help Print usage
--since string Show logs since timestamp
--tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
7 删除container:
docker rm -f container_id
8 删除image(只有删除依赖的container list,才可以删除image):
docker rmi build_repo/ljing
9 探查镜像
docker image inspect --format=’{{.RepoTags}} {{.Id}} {{.Parent}}’ $(docker image ls -q --filter since=374e7ef78d04)
10 查看docker内应用占用的内存大小
(grep -w参数,精准匹配到单词report,而不会匹配到myreport):
docker stats|grep $(docker ps -a|grep -w “report”|awk ‘{print $1}’)
edf549a9d121 0.01% 1.524 GiB / 64 GiB 2.38% 15.2 MB / 3.9 MB 0 B / 53.8 MB 311
docker stats
CONTAINER CPU % MEM USAGE / LIMIT
eaf549a9d121 18.62% 1.819 GiB / 64 GiB
eaf2ba2aa591 0.22% 197.4 MiB / 16 GiB
5ac6a20acaaa 1.39% 3.193 GiB / 16 GiB
8af080c76489 1.02% 2.845 GiB / 16 GiB
ba0614082211 0.07% 9.413 GiB / 16 GiB
aa1b2c2489fa 0.19% 2.932 GiB / 16 GiB
9a8c21f17ac3 0.05% 14.85 MiB / 251.8 GiB
9a807cf4d4fb 0.00% 140.1 MiB / 10 GiB
8a4e98ec9723 0.00% 972 KiB / 1 GiB
3a9f040ec2d9 0.00% 268 KiB / 1 GiB
aa0541f1c70c 0.61% 1.173 GiB / 30 GiB
aa098a1dafc3 0.06% 17.52 MiB / 251.8 GiB
2a1c91746037 0.07% 2.664 GiB / 16 GiB
7a15c0925d48 0.00% 436 KiB / 1 GiB
2a32ba3c3c22 0.19% 3.43 GiB / 16 GiB
aa71d9efd825 0.41% 3.458 GiB / 16 GiB
ca90be3f4570 0.07% 186.7 MiB / 16 GiB
7a1f63a501c0 0.06% 146.9 MiB / 251.8 GiB
8a39142d66b4 0.05% 28.57 MiB / 251.8 GiB
7a7d451e9ca5 0.17% 2.845 GiB / 16 GiB
1a2aace34f09 0.24% 3.028 GiB / 16 GiB
fadbab66005d 0.00% 220 KiB / 251.8 GiB
daa141b16e73 0.00% 24 KiB / 251.8 GiB
aacbf3bd4eeb 0.00% 276 KiB / 251.8 GiB
da7f7052585c 0.07% 1.355 MiB / 251.8 GiB
0a56f72a1184 0.06% 160 MiB / 16 GiB
9a31be5aac20 0.07% 288.4 MiB / 16 GiB
da0951ec8b0d 0.07% 126.5 MiB / 4 GiB
1ac3b7ac3982 0.08% 3.456 GiB / 16 GiB
3a141c17c3d9 0.00% 8 KiB / 24 GiB
aaa2217334c3 0.28% 791 MiB / 16 GiB
ea0cf0a69be0 1.12% 2.49 GiB / 20 GiB
5a204d69fd2b 0.66% 2.595 GiB / 20 GiB
faa084525630 0.84% 2.449 GiB / 20 GiB
默认会显示容器ID,如果想显示容器名,用如下命令:
docker stats $(docker ps --format={{.Names}}) --查全部的
按内存占用比例倒序排列,取前50列
docker stats --no-stream | sort -k 8 -rn|head -n 100
c4cddf9b268c 0.23% 2.885 GiB / 4 GiB 72.14% 0 B / 0 B 22.8 MB / 8.19 kB 47
c9b955827b0c 0.26% 2.795 GiB / 4 GiB 69.88% 0 B / 0 B 116 MB / 0 B 42
ea5264b3ffc4 1.28% 36.1 GiB / 64 GiB 56.40% 1.77 GB / 646 MB 9.4 GB / 374 MB 419
287ec132d15e 1.14% 29.3 GiB / 64 GiB 45.78% 342 MB / 282 MB 1.56 GB / 167 MB 383
1479fed8fdd0 0.44% 27.67 GiB / 64 GiB 43.24% 1.61 GB / 643 MB 19.8 GB / 825 MB 316
a0b7c2a9f0ca 0.49% 26.55 GiB / 64 GiB 41.48% 1.34 GB / 583 MB 21.4 GB / 871 MB 319
925a10d6b8b0 0.56% 20.79 GiB / 64 GiB 32.49% 1.05 GB / 816 MB 10.6 GB / 584 MB 372
899099d3e6d1 0.06% 648.4 MiB / 2 GiB 31.66% 0 B / 0 B 11.7 MB / 0 B 28
102dd286878a 0.33% 3.947 GiB / 16 GiB 24.67% 0 B / 0 B 32.3 MB / 4.1 kB 43
2f32ba3c3c22 2.74% 3.55 GiB / 16 GiB 22.19% 0 B / 0 B 369 MB / 1.34 MB 78
58c6a20acaaa 0.19% 3.536 GiB / 16 GiB 22.10% 0 B / 0 B 1.52 GB / 4.71 MB 78
88f080c76489 1.53% 3.53 GiB / 16 GiB 22.06% 0 B / 0 B 1.87 GB / 40.3 MB 79
737d451e9ca5 0.58% 3.509 GiB / 16 GiB 21.93% 0 B / 0 B 8.67 GB / 5.53 MB 77
ad71d9efd825 0.27% 3.508 GiB / 16 GiB 21.92% 0 B / 0 B 1.52 GB / 5.11 MB 76
28b1bd43821f 0.18% 3.457 GiB / 16 GiB 21.60% 0 B / 0 B 24.9 GB / 8.19 kB 59
152aace34f09 0.13% 3.448 GiB / 16 GiB 21.55% 0 B / 0 B 7.72 GB / 18.5 MB 78
1d83951bb647 0.13% 3.366 GiB / 16 GiB 21.04% 0 B / 0 B 36.9 GB / 1.24 GB 77
57204d69fd2b 0.82% 3.551 GiB / 20 GiB 17.76% 0 B / 0 B 69.4 GB / 4.83 GB 83
f7a084525630 0.85% 3.521 GiB / 20 GiB 17.61% 0 B / 0 B 242 GB / 20.5 GB 103
ef0cf0a69be0 0.65% 3.465 GiB / 20 GiB 17.32% 0 B / 0 B 64.7 GB / 4.6 GB 84
d90951ec8b0d 0.08% 692.8 MiB / 4 GiB 16.92% 0 B / 0 B 2.9 GB / 69.6 kB 41
2d1c91746037 0.05% 2.697 GiB / 16 GiB 16.85% 0 B / 0 B 9.29 GB / 98.3 kB 59
c490be3f4570 0.04% 1.377 GiB / 16 GiB 8.61% 0 B / 0 B 150 GB / 1.74 GB 55
a90541f1c70c 0.74% 2.065 GiB / 30 GiB 6.88% 314 MB / 3.89 GB 132 GB / 3.92 GB 498
9431be5aac20 0.06% 1020 MiB / 16 GiB 6.23% 0 B / 0 B 173 GB / 1.72 GB 60
7108d1a0effa 0.06% 156.5 MiB / 8 GiB 1.91% 3.57 GB / 2.4 GB 77.4 GB / 1.06 TB 16
0656f72a1184 0.06% 296.1 MiB / 16 GiB 1.81% 0 B / 0 B 12.8 GB / 168 MB 34
e6e720f57d5d 0.07% 40.9 MiB / 16 GiB 0.25% 1.37 GB / 3.92 GB 199 MB / 39.6 GB 20
8be8e4e6ea64 0.07% 37.85 MiB / 16 GiB 0.23% 684 MB / 1.51 GB 145 MB / 35.7 GB 20
a718e367b3bf 0.03% 32.38 MiB / 16 GiB 0.20% 778 MB / 1.94 GB 158 MB / 39.6 GB 20
2de16f9b594a 0.07% 30.44 MiB / 16 GiB 0.19% 753 MB / 1.8 GB 166 MB / 40.2 GB 20
d47f8875f59c 0.05% 21.03 MiB / 16 GiB 0.13% 715 MB / 1.68 GB 132 MB / 39.6 GB 20
61b53185154b 42.94% 189.2 MiB / 251.8 GiB 0.07% 0 B / 0 B 41 kB / 0 B 160
7115c0925d48 0.00% 284 KiB / 1 GiB 0.03% 12.7 MB / 239 MB 165 MB / 8.19 kB 3
319f040ec2d9 0.00% 300 KiB / 1 GiB 0.03% 6.86 MB / 197 MB 89.5 MB / 8.19 kB 3
a6098a1dafc3 0.03% 25.57 MiB / 251.8 GiB 0.01% 3.94 GB / 432 MB 1.28 GB / 74.1 GB 19
797f8759288e 0.00% 1.082 MiB / 8 GiB 0.01% 1.72 MB / 28.5 MB 19.8 MB / 8.19 kB 3
fcdbab66005d 0.00% 8 KiB / 251.8 GiB 0.00% 444 kB / 1.12 kB 0 B / 0 B 2
d1a141b16e73 0.00% 8 KiB / 251.8 GiB 0.00% 445 kB / 1.03 kB 0 B / 0 B 2
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
aacbf3bd4eeb 0.00% 8 KiB / 251.8 GiB 0.00% 446 kB / 1.3 kB 0 B / 0 B 2
a78a9613d26e 0.00% 304 KiB / 251.8 GiB 0.00% 80.9 kB / 648 B 0 B / 12.7 MB 2
814e98ec9723 0.00% 36 KiB / 1 GiB 0.00% 1.17 MB / 15.9 MB 12.2 MB / 0 B 3
3c141c17c3d9 0.00% 8 KiB / 24 GiB 0.00% 0 B / 0 B 9.96 GB / 883 MB 4
docker stats report --只差report应用的
具体用法,详见:https://docs.docker.com/engine/reference/commandline/stats/?spm=a2c6h.13066369.0.0.7c311b13tSpREw
11 容器内操作
11.1 容器内为变量设置别名
vim /etc/profile
alias ll = ‘ls -al’
11.2 docker安装centos后没有ifconfig命令解决办法
yum install net-tools wget
docker ps -a|awk ‘{print $1}’
12 杂项
12.1 Dockerfile中COPY与ADD区别
docker 指令学习
1 COPY
2 ADD
所有文件的复制均使用COPY命令,仅在需要自动解压缩的场合下使用 ADD
12.2 Dockerfile中 CMD ENTRYPOINT 区别
12.2 清理所有处于终止状态的容器
docker rm $(docker ps -a -q)
-q, --quiet Only display numeric IDs
*注意: 该命令视图删除所有的包括还在运行的容器,docker rm 默认并不会删除运行中的容器,除非你显示的添加了 -f 参数。
12.3 设置中国时区
默认情况下,docker里的时区是按格林尼治时间计算,即晚于北京时间8个小时,可按如下方式进行时区的设置:
#设置时区
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
12.4 关于常驻进程的说明
Docker启动后,后台设置一常驻进程,否则容器启动后立即关闭:
docker run -itd -p 4000:4000 --name offline_docker_docs docs/docker.github.io:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"
docker run -itd -p 4000:4000 --name offline_docker_docs docs/docker.github.io:latest /bin/sh -c "tail -f /dev/null"
12.5 批量操作容器
docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
tail -n +2
表示从第二行开始向后显示
13 容器<–>宿主机 文件拷贝
13.1 宿主机 —> 容器
docker cp /home/asdf/msyh.ttf ${容器名}:/usr/share/fonts/win
13.2 容器 —> 宿主机
docker cp ${容器名}:/usr/share/fonts/win /home/asdf/msyh.ttf