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

5.6 KiB
Raw Blame History

经验汇集

常用指令

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>

文本格式导致的脚本执行错误问题

注意在windows下编辑的文本格式是dos格式需要改成unix格式才能作为sh脚本在linux下执行。否则会出现诸如

bin/bash^M: bad interpreter: No such file or directory

参考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会失败