闪电龟龟--笔记

万物寻其根,通其堵,便能解其困。
  博客园  :: 新随笔  :: 管理

安装/发布docker 安装相关环境

Posted on 2022-01-27 12:42  闪电龟龟  阅读(304)  评论(0编辑  收藏  举报

一、window版本:

参照地址:https://www.cnblogs.com/hr20-04-19/p/13906910.html

笔记如下:

安装

下载地址:https://get.daocloud.io/#install-docker-for-mac-windows

win10安装如下

 

win10以下安装如下

 安装过程:直接下一步即可。

 

win7安装会出现“Docker Quickstart Terminal”无法使用的现象(参考文档:https://www.cnblogs.com/canger/p/9028723.htmlhttps://blog.csdn.net/jiangbb8686/article/details/79831971

出现 “Docker Quickstart Terminal”无法使用的现象实践:

点击“Docker Quickstart Terminal”出现“浏览”,然后找到Git安装下的“Git\bin\bash.exe”打开即可,打开后无需操作,如果没有安装好环境会自动下载

直到看到下面界面即可表示安装成功

 创建docker

方式1:

启动Oracle VM VirtualBox

方式2:如同“发布”

 发布

参照:https://www.cnblogs.com/shijunjie/p/10488603.html

 1.将docker文件复制过去

 

 

 2.执行创建

 

3. 运行docker(docker run -it -p 10101:10101 netcore)

 3.查看分配IP

 

 

4.

 

 

 相关环境的安装

 安装mysql

1.查看指定版本

 

 2.安装指定版本(最新版本指令:docker pull mysql:latest)

 

 3.查看镜像是否安装成功

 

 4.运行mysql镜像

docker run -p 本地主机端口号(由于本地存在mysql(3306),所以用3307):容器服务端口号 --name 容器名字 (-e 配置信息,一般初始化使用如下面的设置mysql账号密码) -d 镜像名字

 

 5.连接信息(下面使用Navicat进行测试)

 6.没有Navicat的建议下载一个,不使用Navicat的话,可以使用docker进行打开mysql

7.后续mysql使用,请参照相关使用文档,如果找不到合适文档可以查看(https://www.cnblogs.com/namejr/p/15269339.html)笔记

 https://blog.csdn.net/jiangbb8686/article/details/79831971

 

AddBy 2022-02-19

二、Linux版本(本次实验用的是Ubuntu):

参照博客:https://www.cnblogs.com/kingsonfu/p/11576797.html?ivk_sa=1024320u (博客哪里使用yum,我这边想保持环境干净所以没有使用,但是思路明白就好)

1.安装docker

 

 完成完毕界面

 

 

2.启动docker

sudo service docker start  -- 启动

sudo service docker stop   -- 停止

sudo service docker restart  -- 重启

 

安装net6环境请前往官方地址(https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu),

一是因为可以查看可安装兼容的最新版本

二是请相信官方文档(作为一个不喜欢看官方文档的人来说是一个血的教训,折腾了好久,广州8度的天气,我愣是在电脑桌前连午睡都没事搞了一下午最终还是去看官方文档解决的)

如果出现安装“sudo apt-get install -y aspnetcore-runtime-6.0”或者“sudo apt-get install -y dotnet-sdk-6.0”失败的话,可以重启电脑试试

笔记:

先安装依赖(https://www.mono-project.com/download/stable/#download-lin),如要看详细信息,请前往原地址

我这边是(Ubuntu 20.04)

udo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update


sudo apt install mono-devel

 

将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库
wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

安装 SDK

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

 

安装运行时

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

 

 

安装SDK或者运行时失败:

尝试清除包列表

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

然后,再次尝试安装 .NET。 如果这不起作用,可使用以下命令运行手动安装:

sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

 

 

3.创建docker(参照:https://www.cnblogs.com/cplemom/p/11142857.html

Addby 2022-04-03

将文件移动到linux方式:

在window上下载PuTTY(https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html),下载完成安装后,在安装目录(具有pscp.exe的界面)打开cmd,输入:pscp 文件路径 linux用户名@linux的IP地址:上传放置目录。例如:D:\PuTTY>pscp d:/Xshell/UploadData/Dockerfile namejr@192.168.0.105:/home/namejr/Desktop/

EndBy 2022-04-03

需将Dockerfile文件和网站发布代码复制到linux

Dockerfile

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
FROM base AS final
WORKDIR /website
EXPOSE 80
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "ncwebapi.dll"]
docker build -t ncwebapi website/  -- 创建镜像  如果建立下载出问题,可以使用“docker镜像加速”,例子:"https://www.runoob.com/docker/docker-mirror-acceleration.html"(亲测没用)

docker run --name ncwebapi -d -p 10101:80 -v website/ ncwebapi -- 运行镜像

ocker run --name testapp -d -p 8000:80 -v /www:/app testcore 
--name指定容器名称 
-d 指定容器后台运行 
-p 指定外部8000端口映射到容器80端口 
-v 绑定数据卷/www到容器内的/app (本地目录:容器内目录)本地目录必须为绝对路径testcore镜像名

 4.启动网站

4.1使用控制台窗口进行驻留启动(不建议)

dotnet ncwebapi.dll --urls=http://*:10101 &  -- ncwebapi.dll为项目dll,10101为端口;相当于window安装的“3. 运行docker(docker run -it -p 10101:10101 netcore)”步骤

4.2通过守护进程去使其不受关闭控制台、关机等因素印象(参照地址:https://blog.csdn.net/zhouzhangwen/article/details/121684407,如需查看详细信息,请往原地址)

 

sudo apt-get install supervisor  -- 安装守护进程

-- 进入写守护进程配置文件(如果vi出现保存失败现象,请优先考虑权限是否足够,别问为什么,真的不是20分钟的折腾经验教训,不是、、、、、是吧)
cd /etc/supervisor/conf.d/
vi aptest.conf


配置文件(aptest.conf)内容:
[program:ncwebapi] #程序名称
command=dotnet ncwebapi.dll  #要执行的命令 ncwebapi是程序名称
directory=/home/namejr/Desktop/website/ #命令执行的目录
environment=ASPNETCORE__ENVIRONMENT=Production #环境变量
user=root  #进程执行的用户身份
stopsignal=INT
autostart=true #是否自动启动
autorestart=true #是否自动重启
startsecs=1 #自动重启间隔
stderr_logfile=/home/namejr/Desktop/website/log/apptest.err.log #标准错误日志
stdout_logfile=/home/namejr/Desktop/website/log/apptest.out.log #标准输出日志


重启后配置文件生效:
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf #重新加载配置
sudo service supervisor stop #停止
sudo service supervisor start #启动

生效后可直接访问站

 

EndBy 2022-02-19

、、