分类 vps 下的文章

Docker 一键安装命令

curl -fsSLo- get.docker.com | /bin/sh

运行 hello-world 检查Docker引擎是否安装

docker run hello-world

运行一个 Ubuntu 容器

docker run -it ubuntu bash

显示所有的容器

docker ps -a

显示本机镜像

docker images

查看Ubuntu镜像的历史

docker history hello-world

查看镜像的历史

docker history ubuntu

删除所有容器

docker rm -f $(docker ps -qa)

删除所有镜像

docker rmi -f $(docker images -qa)


国内使用阿里云镜像

wget get.docker.com -O get.docker.sh
bash  get.docker.sh  --mirror Aliyun

使用国内镜像,显示deb包 源为 mirrors.aliyun.com

cat /etc/apt/sources.list.d/docker.list
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian buster stable

镜像下载 修改 vim /etc/docker/daemon.json 添加 国内源,网上可以查

限制日志大小, vim /etc/docker/daemon.json 里设置
没有去用过,使用脚本 自动删除也是可以的

Docker 不是虚拟机,所以使用 htop 工具,是可以看到容器中运行的程序,运行的服务程序实际还是在宿主机上的,只是 Docker 容器挂载了虚拟的文件系统,Docker中的程序是和宿主机其他程序 文件系统隔离的。
如何查看并干净卸载所有容器和docker

1,查看所有运行的容器:

docker ps -a

2,停止所有容器,并删除所有容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

3,删除所有镜像

docker rmi $(docker images -q)

4,卸载docker

apt-get purge docker-ce

apt-get purge docker-ce-cli

apt-get purge containerd.io

5,检查是否卸载完成

apt list --installed | grep docker

apt list --installed | grep containerd.io

6,删除残余文件

rm -rf /var/lib/docker

rm -rf /var/run/docker

rm -rf /etc/docker

rm -rf /run/docker.sock

rm -rf /var/lib/containerd

rm -rf /run/containerd

rm -rf /opt/containerd

修改Docker配置(可选)

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘

cat > /etc/docker/daemon.json <<EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "ipv6": true,
    "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    "experimental":true,
    "ip6tables":true
}
EOF

重新启动 service docker restart

我们在创建甲骨文实例时,甲骨文为我们生成了密钥 但是我还是习惯了密码登陆

因为我没办法随时随地在多终端上保留密钥,虽然密钥很安全,但是那很操蛋的

所以我会在创建实例的时候直接开启root登陆 无视密钥,如果你需要这样做 那么往下看
开启root登陆
在创建实例的时候,留意下方的高级设置

点开之后,可以看到启动脚本,我们将配置好的脚本粘贴进去,在机器创建时会配置root登陆

#!/bin/bash
echo root:密码 |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart

修改脚本中的 密码 为你想要设置的

机器创建之后,首次连接会有一次断开

这预示着可以愉快的玩耍了
https://xidcn.com/127.html

使用ssh-keygen生成密钥对
ssh-keygen
注意:当它要求您输入passphrase按下enter键,不要给任何密码。

使用ssh-copy-id将公钥拷贝至远程主机
使用ssh-copy-id命令将公钥拷贝至远程主机

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
注:执行以上操作时会要求你输入远程主机帐户和密码,然后就会自动将公钥拷贝至远程目录。

无需密码连接ssh
现在,你可以不需要密码通过ssh连接到远程主机

ssh [email protected]
https://blog.haogeboke.org/archives/technology/ssh_key

获取 acme.sh
acme.shshell 脚本可自动颁发和续订来自 Let's Encrypt 的免费证书。您可以通过直接从 Web 下载脚本或克隆其 git 项目来获取 acme.sh 脚本。
从网络下载 acme.sh
运行以下两个命令中的任何一个以下载并执行 acme.sh 脚本。
curl https://get.acme.sh | sh -s [email protected]
wget -O - https://get.acme.sh | sh -s [email protected]
安装出现错误,安装crontab与socat
apt install cron socat -y
一旦看到“安装成功!”消息,您都可以关闭终端窗口并再次打开它以验证安装。
若要查看 acme.sh 使用情况信息,请运行下一个命令。
acme.sh -h
您也可以运行以下命令来检查 acme.sh 版本。
acme.sh --version
生成证书
要为单个域生成单个证书,请运行以下命令。

yourdomain.com替换为您注册的域。此外,根据需要将/home/www/yourdomain.com替换为您域的网站根文件夹。
acme.sh --issue -d yourdomain.com -w /var/www/yourdomain.com
对于共享同一网站根文件夹的多个域/子域,您可以运行下一个命令来颁发证书。
acme.sh --issue -d yourdomain.com -d www.yourdomain.com -d subdomain.yourdomain.com -w /var/www/yourdomain.com
生成的证书将存储在 ~/.acme.sh/yourdomain.com 中

使用 acme 在 NGINX 上安装证书

通过 acme.sh 脚本生成证书后,下一步是将其安装在NGINX上。首先,创建一个文件夹,将生成的证书复制到该文件夹。
sudo mkdir -p /etc/nginx/certs/yourdomain.com
运行下一个命令以安装证书。不要忘记将yourdomain.com替换为您注册的域。
acme.sh --install-cert -d yourdomain.com --key-file /etc/nginx/certs/yourdomain.com/key.pem --fullchain-file /etc/nginx/certs/yourdomain.com/cert.pem --reloadcmd "service nginx force-reload"
更新 NGINX 服务器块文件
最后一步是更新域的服务器块文件以包含与 SSL 相关的指令。
运行以下命令以编辑服务器块文件。
sudo nano /etc/nginx/sites-available/yourdomain.com
接下来,添加以下行。

listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/cloudindevs.com/cert.pem;
ssl_certificate_key /etc/nginx/certs/cloudindevs.com/key.pem;

保存更改并关闭文件。
更新 NGINX 服务器块文件以使用 SSL
使用以下命令重新启动 NGINX:

sudo systemctl restart nginx
在浏览器中访问您的网站,以确认现在已启用安全通信。

证书续订
Let's Encrypt颁发的证书将每60天自动续订一次。

但是,如果您愿意,也可以手动续订证书。运行以下命令。

acme.sh --renew -d yourdomain.com --force
若要停止证书续订,请运行以下命令。

acme.sh --remove -d yourdomain.com
升级 acme.sh
建议始终使用最新版本的 acme.sh。运行以下命令以确保自动更新 acme.sh。

acme.sh --upgrade --auto-upgrade
若要禁用 acme.sh 的自动升级,请运行下一个命令。

acme.sh --upgrade --auto-upgrade 0
如果您不希望 acme.sh 自动升级,请使用以下命令手动更新它。

acme.sh --upgrade
结论
在本指南中,我们描述了使用 Ubuntu 上的 acme.sh shell 脚本从 Let's Encrypt 获取和续订免费 SSL/TLS 证书的步骤。此方法是使用 Certbot 工具的替代方法。我们想听听您使用这些工具的经验。

新买的vps服务器,有一部分商家会提前预装apache2,要用nginx的,把它卸载掉。

apt-get --purge remove apache2
apt-get --purge remove apache2.2-common
apt-get --purge remove apache2-doc
apt-get --purge remove apache2-utils
apt-get autoremove