Dokcer的安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 使用脚本自动安装 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装: curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun # $ sudo sh get-docker.sh --mirror AzureChinaCloud 执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。 Ubuntu 16.04+、Debian 8+、CentOS 7 在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件) { "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
启动 Docker CE 镜像加速
1 2 $ sudo systemctl enable docker $ sudo systemctl start docker
建立 docker 用户组 默认情况下,docker
命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root
用户和 docker
组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root
用户。因此,更好地做法是将需要使用 docker
的用户加入 docker
用户组。
建立 docker
组:
将当前用户加入 docker
组:
1 $ sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
测试 Docker 是否安装正确 1 $ docker run hello-world
1、Docker可视化面板安装
1 docker run -d -p 5471:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull
1 docker run -p 8888:8888 --name swzl cb1642485ca7 -v /www/wwwroot/ctguswzl.cn:/www/wwwroot/ctguswzl.cn flask:latest
1 2 3 4 5 docker run -it --rm=true -p 8888:8888 -v /www/wwwroot/ctguswzl.cn:/www/wwwroot/ctguswzl.cn flask:latest /bin/sh docker run -it -p 8888:8888 -v /www/wwwroot/ctguswzl.cn:/www/wwwroot/ctguswzl.cn flask:latest /bin/sh docker run -it -p 8888:8888 --name flask -v /www/wwwroot/ctguswzl.cn:/www/wwwroot/ctguswzl.cn registry.cn-hangzhou.aliyuncs.com/iboy/ctguswzl:1.0 /bin/sh
mkdir -p /www/wwwroot/ctguswzl.cn mkdir -p /www/server
迁移
1 tar -zcvf server.tar.gz *
cerboot实现泛域名证书自动续期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 创建目录 mkdir -p /www/server/certbot # 进入目录 cd /www/server/certbot # 下载 wget https://dl.eff.org/certbot-auto # 设为可执行权限 chmod +x certbot-auto # 加入到系统可执行目录 ln -s /www/server/certbot/certbot-auto /usr/bin/ # 申请证书,替换成你自己的域名 ln -s /www/server/certbot/certbot-auto /usr/bin/ ln -s /www/server/certbot/certbot-auto /usr/bin/ \ && certbot-auto -d "*.ctguswzl.cn" -d "ctguswzl.cn" --manual --preferred-challenges dns-01 certonly --server https://acme-v02.api.letsencrypt.org/directory
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 0 */1 * * root certbot-auto renew --manual --preferred-challenges dns --deploy-hook "docker start nginx" --manual-auth-hook "/www/server/certbot/tool/au.sh python aly add" --manual-cleanup-hook "/www/server/certbot/tool/au.sh python aly clean" certbot-auto renew --cert-name ctguswzl.cn --manual-auth-hook /www/server/certbot/tool/au.sh --dry-run 0 3 1 * * certbot-auto renew --renew-hook "sudo nginx -s reload" 0 3 1 * * certbot-auto renew --renew-hook "sudo nginx -s reload" 0 1 */1 * * certbot renew --force-renewal --cert-name ctguswzl.cn --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory --manual --manual-auth-hook "/www/server/certbot/tool/au.sh python txy add" --manual-cleanup-hook "/www/server/certbot/tool/au.sh python txy clean" >/dev/null 2>&1 /bin/sh -c cd /www/server/certbot && certbot-auto renew --force-renewal --cert-name ctguswzl.cn --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory --manual --manual-auth-hook "/www/server/certbot/tool/au.sh python txy add" --manual-cleanup-hook "/www/server/certbot/tool/au.sh python txy clean" --renew-hook "docker restart nginx" >/dev/null 2>&1 每天凌晨1点执行定时任务续签证书 0 1 * * * /bin/sh -c /www/server/certbot/certbot-auto renew --force-renewal --cert-name ctguswzl.cn --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory --manual --manual-auth-hook "/www/server/certbot/tool/au.sh python txy add" --manual-cleanup-hook "/www/server/certbot/tool/au.sh python txy clean" --renew-hook "docker restart nginx" >/dev/null 2>&1
1 2 pip install virtualenv sudo apt-get install python3.6-venv
正解
apt-get purge python-virtualenv python3-virtualenv virtualenv pip install virtualenv
pip install virtualenv==16.1
Docker可视化面板 1 2 3 4 5 6 7 8 docker run -d \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data -v /public:/public portainer/portainer:1.20.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 docker commit -a "iBoy" -m "Portainer中文汉化" 398562fad864 registry.cn-hangzhou.aliyuncs.com/iboy/portainer:1.0 docker run -d \ -p 9001:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ registry.cn-hangzhou.aliyuncs.com/iboy/portainer:1.0 https://blog.csdn.net/weixin_42851117/article/details/106645555 docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer registry.cn-zhangjiakou.aliyuncs.com/ctgu/portainer docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v pcn_data:/data --name prtainer5 registry.cn-zhangjiakou.aliyuncs.com/ctgu/portainer docker cp /root/public/. 2a8:/public/ registry.cn-zhangjiakou.aliyuncs.com/ctgu/portainer
docker-compose安装 1 sudo curl -L https://github.wuyanzheshui.workers.dev/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
秘钥登录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 scp id_rsa.pub root@192.168.19.7:~/.ssh 我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。 密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。 下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。 1. 制作密钥对 首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令: [root@host ~]$ ssh-keygen <== 建立密钥对 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空 Enter same passphrase again: <== 再输入一遍密钥锁码 Your identification has been saved in /root/.ssh/id_rsa. <== 私钥 Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公钥 The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host 密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。 现在,在 root 用户的家目录中生成了一个 .ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsa.pub 为公钥。 2. 在服务器上安装公钥 键入以下命令,在服务器上安装公钥: [root@host ~]$ cd .ssh [root@host .ssh]$ cat id_rsa.pub >> authorized_keys 如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确: [root@host .ssh]$ chmod 600 authorized_keys [root@host .ssh]$ chmod 700 ~/.ssh 3. 设置 SSH,打开密钥登录功能 编辑 /etc/ssh/sshd_config 文件,进行如下设置: RSAAuthentication yes PubkeyAuthentication yes 另外,请留意 root 用户能否通过 SSH 登录: PermitRootLogin yes 当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录: PasswordAuthentication no 最后,重启 SSH 服务: [root@host .ssh]$ service sshd restart 4. 将私钥下载到客户端,然后转换为 PuTTY 能使用的格式 使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上。然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你刚才设置了密钥锁码,这时则需要输入。 载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。 今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。