参见:windows上用VS2019开发的 .NETCore项目如何打包部署到linux Docker中_风中极乐鸟的博客-CSDN博客
部署net core项目
进入到发布文件目录(Dockerfile文件所在目录),执行命令便可打包镜像
命令:cd /usr/pm/uaction/build/ (cd 操作目录-含dockfile的那个文件夹中)
docker build -t umscore3 . //构建镜像 别忘了这个'.'!!!! , 再执行一次该指令将生成一个新版本的image
docker run --name=umsaction --restart=always -d -p 97:5000 -v /usr/pm/uaction/plug:/publish/plug -v /usr/pm/uaction/jsonConfig:/publish/jsonConfig umscore3
docker run --name=umstde --restart=always -d -p 10010:5000 -v /usr/pm/umstde/plug:/build/plug -v /usr/pm/umstde/jsonConfig:/build/jsonConfig umstdeapi
run命令解析:
1、-p 指定对应端口,访问时已第一个值为准,接上面的命令即97端口
2、-v 指定映射文件夹路径。此时用于更新比较方便。替换文件夹文件后 重启容器即可生效
2.1、dockfile 配置项目中增加 WORKDIR /umstde 。其中umstde 为指定的容器内部的工作夹文件。
2.2、-v /usr/pm/umstde/plug:/umstde/plug 为指定路径映射到容器内部的工作夹文件(umstde/plug)。
其他命令:
1、docker images 查看镜像
2、docker rmi imageid 删除镜像
3、docker ps 查看容器
4、docker ps -a 查看所有容器
5、docker rm 容器ID 删除容器
6、docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器
7、docker exec -it dockumstde /bin/bash (容器名:dockumstde),进入容器内部,可以查看文件
8、docker logs [容器名/容器ID]: 查看日志
9、拷贝文件
2021-06-28 日志记录:同一台服务器上2个不同docker容器的通信
1、创建docker 时 使用 --link 通信 例如以下例子
创建httpreports的Dashboard docker 镜像&容器
--镜像
docker build -t umsreportsapi .
--容器 映射9002 到宿主机的10099 端口
docker run --name=umsreports --restart=always -d -p 10099:9002 umsreportsapi
创建连接互通的umstde docker镜像&容器
--镜像
docker build -t umstdeapi .
--容器 其中主要: --link umsreports:nameasreporttest
docker run --name=umstde --restart=always -d -p 10010:5001 --link umsreports:nameasreporttest -v /usr/pm/umstde/plug:/umstdes/plug -v /usr/pm/umstde/jsonConfig:/umstdes/jsonConfig umstdeapi
--使得2个docker容器进行相互通信
--可使用 curl http://umsreports:9002/ 验证
另:对于httpreports的Dashboard的服务配置
使用:"CollectorAddress": "http://umsreports:9002/",
2、容器内连接数据库失败问题:
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)
解决:在 Dockerfile 中添加下面的指令
RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf
3、容器缺失8H的问题解决:
dockfile 或者run的时候增加变量 ENV TZ=Asia/Shanghai
4、清理Docker的日志
ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
truncate -s 0 /var/lib/docker/containers/2d6a418332ef5c54fe2f202566a1cc80ff808b07c771f1111a0ecd2b794b7415/2d6a418332ef5c54fe2f202566a1cc80ff808b07c771f1111a0ecd2b794b7415-json.log
(truncate -s 0 +路径)