Dockerfile 编写

Docker 教程 · 第 5 章 · 7 次浏览

容器是临时的,删了数据就没了。数据卷(volume)把数据存到宿主机,容器删了数据还在;网络让容器之间通信。

数据卷

docker run -v 宿主机目录:容器目录 挂载。MySQL 数据、Nginx 配置、上传文件都该挂载出来。

网络

默认 bridge 网络容器间可用容器名通信。docker network create 自定义网络,跑容器时 --network 指定,容器名即域名。

代码示例

# 数据卷挂载
docker run -d 
  --name mysql 
  -p 3306:3306 
  -v /data/mysql:/var/lib/mysql 
  -e MYSQL_ROOT_PASSWORD=secret 
  mysql:8

# 自定义网络
docker network create mynet

# 容器加入同一网络,用名字互通
docker run -d --network mynet --name nginx nginx
docker run -d --network mynet --name php php:8-fpm

# nginx 容器里可以直接 curl http://php:9000 访问
📚 Shell 命令速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
ls / ls -la列出文件(-la 显示隐藏和详情)
cd 目录切换目录
pwd显示当前目录
mkdir -p 目录创建目录(-p 自动建父级)
touch 文件创建空文件
cp -r 源 目标复制(-r 递归复制目录)
mv 源 目标移动 / 重命名
rm -rf 目录删除(危险,慎用)
cat 文件查看文件内容
less 文件分页查看文件(q 退出)
grep "关键词" 文件按关键词搜索
find . -name "*.php"按名称查找文件
chmod 755 文件修改权限
ps aux查看进程
kill 进程号结束进程
top实时资源监控
df -h / free -m磁盘 / 内存占用
tar -czf a.tar.gz 目录打包压缩
tar -xzf a.tar.gz解压
curl 网址请求网址(测试接口)
wget 网址下载文件
ssh 用户@主机远程登录
scp 文件 用户@主机:/路径远程传文件
sudo 命令以管理员执行
crontab -e编辑定时任务