docker 实操

参见: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 +路径)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值