网站首页 > 基础教程 正文
目前都比较流行使用docker,独立运行互不干扰,扩展快
//验证是否已经安装docker
yum list installed | grep docker
或
docker -v //会显示版本号
//如版本太旧,删除,重新安装
sudo yum remove docker docker-common docker-selinux docker-engine
//如果没有结果,则安装,看到结果:Complete!
yum -y install docker
//启动
systemctl start docker
//查看状态,看到绿色:active(running),代表已启动
systemctl status docker
安装还是很简单,我们打包镜像文件,以.net为例子
若项目中未加入Dockerfile文件,项目点击右键加入,文件命令如下
#添加基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0
#拷贝DockerFile文件所在的目录所有文件到docker容器中的publish文件夹中
COPY . /publish
#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
WORKDIR /publish
#设置Docker容器对外暴露端口
EXPOSE 80/tcp
#使用`你的主程序.dll`来运行应用程序,
CMD ["dotnet", "你的主程序.dll","--urls", "http://*:80"]
打包后文件上传至linux服务器的tmp目录
//安装.net6环境
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
//构建镜像,进入发布目录
cd /tmp/publish/
//构建
docker build -t 镜像名称 . //最后.必须保留,如:docker build -t img-demo1 .
//创建运行容器
docker run -d --name dk-donet6-demo01 -p 8080:80 --restart=always img-demo1
/*
-d #后台运行
-p 8001:80 #宿主机端口号:docker端口号
--restart=always #dokcer重新启动时也将容器自动启动
*/
//创建完成后,测试
curl -X GET "http://127.0.0.1:8080/" //能看到内容则说明部署成功
//容器常用命令
//查看所有容器
docker ps -a
//启动容器
docker start 容器名 //dk-donet6-demo01
//停止容器
docker stop 容器名 //dk-donet6-demo01
//删除容器
docker rm 容器名 //dk-donet6-demo01
//删除镜像
docker rmi 镜像名 //img-demo1
如果Build失败,is not a valid repository/tag,build一直报错,报镜像名是不是有效的存储名
//一般是donet镜像基础名冲突
//安装donet环境的名称
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
//dockerfile中的名称
#添加基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:6.0
//这2个名称要保持一致
如何更换容器端口
//有2种方式,第一个是修改配置文件,比较繁琐,还需要停止容器和服务,第二种是克隆一个新的容器并重新运行即可
//推荐使用第二种方式:
//停止容器
docker stop dk-dev-redis
//克隆
docker commit dk-dev-redis img-new-dev-redis
//运行
docker run --name dk-new-dev-redis -p 6379:6379 img-new-dev-redis
//删除旧容器
docker rm dk-dev-redis
/*第二种可以参考*/
//停止容器
docker stop 容器名称
//停止服务
systemctl stop docker
//修改2份配置文件
cd /var/lib/docker/containers/
ls //可以看到所有容器的ID, docker ps -a ,id前面与其相符
vi 容器id/hostconfig.json
//"PortBindings":{"容器端口/tcp":[{"HostIp":"","HostPort":"宿主机端口"}]
//同步修改另外一个文件
vi 容器id/config2.v2.json
// “ExposedPorts”:{“容器端口 /tcp”:{}}
//"Ports":{"容器端口/tcp":[{"HostIp":"0.0.0.0","HostPort":"宿主机端口"}]}
//重启服务
systemctl start docker
docker start 容器名称
猜你喜欢
- 2024-10-12 Docker方式部署Nextcloud docker部署项目的两种方式
- 2024-10-12 一起学docker-可视化管理01-Portainer
- 2024-10-12 牛掰!Docker从入门到上手的终极指南,看这一篇文章就够了
- 2024-10-12 Docker进阶---使用网络 docker的网络连接方式
- 2024-10-12 开源&Docker :再说自动化了,一个docker搞定你90%的登录与签到
- 2024-10-12 干货分享:Docker实战中一些技巧 docker基础实战教程一:入门
- 2024-10-12 跟我一起学docker(七)--网络 docker网络管理
- 2024-10-12 松勤软件测试:详解Docker,如何用portainer管理Docker容器
- 2024-10-12 Docker之6 网络管理 docker网络类型 以及特点
- 2024-10-12 Docker可视化图形工具Portainer docker linux 图形化界面
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)