Docker 基础知识
文章目录
docker 简介
2013年3月20日发布Docker0.1
如何定义Docker?
Docker 是一个承载和驱动容器的。Docker 是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是Docker提出的"Build once,Run anywhere"
为了更好的认识Docker,我们先来了解几个必备词汇:镜像,容器和仓库。
|
|
docker 加速代理
https://41zx6m59.mirror.aliyuncs.com
docker 基本操作
-
docker 运行命令参数介绍
1 2 3 4 5 6 7 8 9 10
-d # 使docker在后台运行 -v # 挂载主机上的源代码文件夹到容器内,这样就可以在本地修改代码,然后docker直接读取本地代码 -w # 配合-v参数,设置工作目录,执行容器时可以直接执行工作目录下的文件,不需要指定路径,如python --rm # 在容器结束时自动清理其所产生的数据 -P/-p # 容器会开放部分端口到主机 --restart=always # 容器随系统自动启动 docker run -d -p 80:80 --name 'contain_name' p.home.forgame.com:4567/yunker/xiaodai:1.5.14 # 执行镜像并生成新容器 docker start contain_name # 启动容器 docker exec -it mysql /bin/bash # 进入容器
-
linux 下启动 docker
systemctl start docker
-
查看日志
docker logs container_id # Fetch the logs of a container
-
查看镜像或容器的详细信息,包括容器的IP地址
docker inspect <images_id || “container_id>
-
在宿主机查看Docker使用cpu、内存、网络、io情况
docker stats container_id
-
使用Dockerfile构建镜像
docker build -t 镜像名:版本号 . 『后面那个点是指context,即上下文目录』
. 表示当前目录,而 Dockerfile 就在当前目录 [eg: docker build -t dockerzsm/mysql:0.2 .]
-
查看容器具体改动了哪些文件
docker diff container_id
工作案例
-
docker 运行出错并提示:to many links error
1 2
# 解决方案:删除没用的镜像[none] docker rmi $(docker images | grep "<none>" | awk ' { print $3} ')
-
更改了 php 或静态页面的代码后,后端接口还是返回旧代码的响应内容。
原因: 存在nginx静态页面缓存和php文件自动缓存的参数配置
解决方案:
- 处理静态文件缓存:在nginx.conf配置文件将参数sendfile设置为off
- 处理动态文件缓存:启用或设置opcache.enable=0, opcache.enable_cli=0