常用命令
一些常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
1. docker ps 列出容器
| -a 显示所有容器,包括未运行的
| -l 显示最近创建的容器
| -n 2 显示最近创建的 2 个容器
| -s 显示总的文件大小
2. docker start|stop|restart <容器ID> # 启动|关闭|重启容器
3. docker exec -it <容器ID> /bin/bash # 进入容器bash
- docker image prune -a # 删除未被使用的镜像
- docker container prune # 删除所有停止运行的容器
- docker container ls --filter label=com.docker.compose.project # 查看哪些容器是通过docker-compose创建的
- docker volume prune # 删除所有未被挂在的卷
- docker network prune # 删除所有网络
- docker system prune # 删除 docker 所有资源
- docker-compose ps # 查看启动的服务
- docker-compose stop|start|restart {name} # 停止|启动|重启服务
- docker-compose down {name} # 停用移除容器以及网络相关
- docker-compose rm {name} # 删除停止状态容器,推荐先stop再删除
- docker-compose logs {name} # 查看某个容器的日志
- docker-compose logs -f {name} # 查看某个容器的日志<实时日志>
- docker-compose pause nginx # 暂停nignx容器
- docker-compose unpause nginx # 恢复ningx容器
|
关于yaml模板
用docker-compose
构建容器目前是我最喜欢的方式,单独创建一个目录存放docker-compose.yml
同时把容器配置、缓存目录等放到一起,数据部分单独映射到其他目录,防止误删,干净又卫生。
-
每个缩进级别由 两个空格 组成,一定不能使用tab键
-
每个 冒号 后面一定要有一个空格(如果冒号结尾不需要空格,镜像名冒号不用空格)
-
每个 短横杠 后有一个空格。多个项使用同样的缩进级别作为同一部分配置
关于Dockerfile
现在我已经很少用了,原来写的一些文笔记
-
RUN 的默认权限是 sudo,如果需要执行多个 RUN 操作,最好把他们合并到一起执行,因为每次执行一次 RUN 就会在 docker 上新建一层镜像
-
CMD 是docker run
执行的时候使用,而 RUN 是在docker build
的时候使用,一个 Dockerfile 只有最后一个 CMD 会起作用
-
EXPOSE 的端口可以不 PUBLISH,这样只有容器间可以访问,宿主之外无法访问。而 PUBLISH 的端口,可以不事先 EXPOSE,换句话说 PUBLISH 等于同时隐式定义了该端口要 EXPOSE。docker run -p
就相当于 PUBLISH
-
根据 FORM 命令指定的基本镜像,将每一条指令与从该基本镜像派生的所有子镜像比较,查看是否有使用完全相同的指令构建,如果没有则缓存无效
-
对于 ADD 和 COPY 指令,检查镜像中的文件内容,并为每一个文件计算一个校验标识。将校验标识与现有镜像进行比较,如果文件中的任何内容发送了改变,则缓存无效
-
除了 ADD 和 COPY 指令,缓存检查不会查看容器中的文件变化来确定缓存是否匹配
-
缓存无效后,所有后续命令都会重新构建。