Files
Deployments/NginxAndLetsencrypt/经验汇集.md
2022-11-24 20:32:05 +08:00

186 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 经验汇集
## 常用指令
### Docker相关
```
启动 systemctl start docker
守护进程重启 sudo systemctl daemon-reload
重启docker服务 systemctl restart docker
重启docker服务 sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker
```
```
docker network ls
docker network rm 【网络名称】
docker inspect 【容器id/名称】
docker logs -f -t --since="2017-05-31" --tail=10 【容器名称】 #动态查看容器日志
docker logs -f -t --tail=10 【容器名称】 #动态查看容器日志
```
**基础操作:
**
1 **docker images** 查看镜像信息列表 镜像是静态的
2 **docker ps -a** 查看运行中的所有容器
3 **docker pull [images]:[version]**从dockerhub拉取指定镜像
4 **docker run -p 8000:80 -tdi --privileged [imageID] [command]** 后台启动docker,并指定宿主机端口和docker映射端口。
**-i:**以交互模式运行容器,通常与 -t 同时使用;
**-d:**后台运行容器并返回容器ID
**-t:**为容器重新分配一个伪输入终端,通常与 -i 同时使用;
**--privileged** 容器将拥有访问主机所有设备的权限
通常情况下 [command] 填下 **/bin/bash** 即可。
特殊情况下如需要在centos镜像中使用**systemctl** . 则应添加**--privileged** 并设置[command ]为 **init**
5 当镜像通过run 启动后便会载入到一个动态的container(容器)中运行,此时若需要进入终端交互模式:
**sudo docker exec -it [containerID] /bin/bash**
交互模式中,使用 ctrl+p+q退出交互 保持运行,使用 exit命令退出并停止容器。
6 在容器非交互模式下通过docker start/stop 命令来启动/停止已部署的容器服务。
7 **docker rm [containerID]** 删除容器
8 **docker rmi [imageID]** 删除镜像
9 **docker cp [YourHostFilePath] [containerID]:[DockerPath]** 将宿主机内的指定文件传输至容器内部的指定地址。
**镜像制作:**
1 **docker commit [containerID] [ImageName]:[Version]** 将修改后的容器重新打包成镜像
2 **docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1** 将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
**-a** :提交的镜像作者;
**-c** :使用Dockerfile指令来创建镜像
**-m** :提交时的说明文字;
**-p** :在commit时将容器暂停。
3 **docker push [ImageID] [repertory_address]**提交镜像到云仓库
作者:爱睡觉的树
链接https://www.jianshu.com/p/a84e8cf33b34
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
### Linux
```
history #查看历史执行命令
tail -n 20 【文件名】#查看文件的后20行
du -sh * #查看目录下的磁盘占用情况
du -sh * | sort -nr #如上,并排序
df -h 查看磁盘空间大小
top #linux版本的任务管理器
chmod u+x ./*.sh
chmod是权限管理命令change the permissions mode of a file的缩写。。
u代表所有者x代表执行权限。 + 表示增加权限。
chmod u+x file.sh 就表示对当前目录下的file.sh文件的所有者增加可执行权限。
a+x 是给所有人加上可执行权限,包括所有者,所属组,和其他人
o+x 只是给其他人加上可执行权限
```
###
### Vim
```
history #查看历史执行命令
tail -n 20 【文件名】#查看文件的后20行
```
## 坑记
### Nginx
#### 请求大小限制
在http 的 server 节点中添加`client_max_body_size`。参见https://blog.csdn.net/yedajiang44/article/details/99294216
#### Nginx开启gzip
参考:https://blog.csdn.net/bigtree_3721/article/details/79849503
### 未分类
#### 域名解析
域名解析做完整。如果要给ycmusic.cn配证书不要忘记相应添加域名解析。可以参考
如何解析设置域名添加www和不添加www都能够访问
*来自 <*[*https://jingyan.baidu.com/article/6d704a130c6d0d28db51ca3c.html*](https://jingyan.baidu.com/article/6d704a130c6d0d28db51ca3c.html)*>*
#### 文本格式导致的脚本执行错误问题
注意在windows下编辑的文本格式是dos格式需要改成unix格式才能作为sh脚本在linux下执行。否则会出现诸如
bin/bash^M: bad interpreter: No such file or directory
参考[*https://blog.csdn.net/helloxiaozhe/article/details/90347064解决*](https://blog.csdn.net/helloxiaozhe/article/details/90347064)
另外,可以采用vs的编码保存,其中指定行尾设置
#### Let's Encrypt可以添加--dry-run参数来验证运行
例如:
docker-compose run --rm --entrypoint "\
certbot certonly **--dry-run** --webroot -w /var/www/certbot \
$staging_arg \
$email_arg \
$domain_args \
--rsa-key-size $rsa_key_size \
--agree-tos \
--force-renewal" certbot
echo
#### docker-compose中的特殊字符
如有特殊字符,用""将包含特殊字符的字符串包裹起来。如果有$,哪怕在引号内,也需要输入两个$$以作转义。
例如:
db:
image: "mysql:5.7.27"
restart: always
environment:
- MYSQL_ROOT_PASSWORD="mima$$woshimima"
不过,上面的又有引号又有$的设置是否正确并不确定因为初次这么设置发现无法登录通过docker exec -it 进入执行mysql -uroot -p
#### docker-compose中mysql的密码设置
第一次运行后,只要/var/lib/mysql中的数据没有改变这通常是因为已经mount到主机的特定目录那么后续的密码更改是无效的哪怕把container删了再重建也一样。所以这个时候要不然用原来密码登录要不然就是清空data目录。data目录需要有不然docker-compose up会失败