当前位置: 首页 > news >正文

linux操作docker

docker地址

官方地址
centos7安装docker

卸载旧版本docker

sudo //在前面表示以管理员权限操作yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

安装docker

//安装所需资源包
yum install -y yum-utils//设置docker下载地址
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo//安装docker 安装最新版本的 Docker Engine-Community 和 containerd
yum install docker-ce docker-ce-cli containerd.io

出现 Could not resolve host: yum.dockerproject.org; Unknown error异常,删除/etc/yum.repos.d下的有关docker文件
在这里插入图片描述

yum-config-manager --disable docker.repo //使用该命令来禁用 解决上面这个异常有待确定 如果yum-config-manager命令不存在 需要使用 yum install -y yum-utils 安装

查看安装docker可用列表

参考

yum list docker-ce --showduplicates | sort -r

可选安装

//通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
//安装最新稳定版本 由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
yum install docker-ce docker-ce-cli  

启动docker

systemctl start docker //启动docker
systemctl enable docker //设置开机启动

docker命令使用

#查看docker的版本
docker -v# 查看本地主机上已有镜像的基本信息。
docker images

配置docker阿里云镜像加速

参考

docker的常用命令

docker命令及教程

利用存在的镜像创建容器

sudo docker run --name ecms_server -p 8033:80 -itd 74d76980bf72

–name 容器名称
-p 主机端口:容器端口(项目启动 查看dockerfile文件 分为http https)
-itd 注:-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,
74d76980bf72:某个镜像的Id

利用docker容器启动某个镜像
sudo docker container run -it 74d76980bf72 /bin/bash

忽略docker中的某些文件避免发布的时候进行编译需要添加.dockerignore文件

项目发布到docker

参考docker

docker中workdir

参考netcore dockerfile

安装运行时环境

net7运行时环境

发布项目上传并修改原本的Dockerfile文件

由于先把项目发布上传到服务器在进行docker需要修改原始的docker文件不再需要以下内容

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base #指定基础镜像
WORKDIR /app  #指定工作目录
EXPOSE 80 #对外暴露的端口
EXPOSE 443 COPY . /app #拷贝(.)当前目录下的所有文件到工作目录下(/app) .表示当前目录 ..表示上级目录
ENTRYPOINT ["dotnet", "Ods.dll"] #使用dotnet命令执行 项目

在项目所在路径构建打包docker镜像

docker build -t docker_web7:1.0 . //注意这里的.不能省略 表示构建在当前目录//查看docker镜像
docker images

运行docker镜像

docker run --name docker_web7:1.0 -d -p 8888:80 docker_web7:1.0-d	守护进程,后台运行该容器
--name 容器名字
-p 指定端口映射,格式:主机(宿主)端口|应用对外的端口:容器端口
镜像名称 imagename  repository:tag//检查正在运行的容器
docker ps//查看所有容器
docker ps -a//检查项目是否可访问 运行之后无异常则表示运行起来了
curl 主机ip:端口

docker中拉取安装Nginx反向代理实现负载均衡

在这里插入图片描述

//docker拉取ngnix
docker pull nginx//运行nginx 以80端口运行
docker run --name=nginx -p 80:80 -itd nginx:latest//查看正在运行的镜像
docker ps//直接访问主机ip地址即可达到nginx页面

对docker中nginx配置处理

//容器内部修改配置文件 apt-get不行 镜像无法访问

参考
参考进入docker容器的四种方式
容器内部安装命令
docker安装nginx
删除镜像失败

配置6666端口出现ERR_UNSAFE_PORT

docker中部署的nginx只能访问一个端口的情况

docker安装nginx

//通过模糊查找命令获取nginx配置文件所在路径
find / -name 'nginx.conf'//进入nginx内部容器内部 如果需要退出来使用exit
docker exec -it nginx /bin/bash//修改配置  vim命令容器内部安装有点问题源不能访问配置镜像也不太行
vim /etc/nginx/nginx.conf 

宿主机 docker nginx 三层体系
那么在nginx里面配置的多个server节点 那么在启动nginx时需要-p指定多个端口映射 从宿主机映射到docker容器 以便nginx能访问 出现502Getway

//指定多个端口映射
docker run --name nginx -d -v /tmp/nginx/html:/usr/share/nginx/html -v /tmp/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -p 80:80 -p 7776:7776 nginx

//docker里面部署的nginx server节点 如果要监听转发到该容器里面部署的项目 不能使用宿主的ip 需要使用docker的ip或项目容器名【如果是使用docker部署的服务,可以使用容器名代替ip,docker网络需要是share模式】upstream ods{server 172.17.0.1:8888;//172.17.0.1表示docker容器的ip 你也可以使用对应项目容器名称 如果使用宿主机ip会出现502异常}server{listen 7776;location /{proxy_pass http://ods;proxy_set_header Host $host:$server_port;}}

Dockerfile详解

http://www.lryc.cn/news/308844.html

相关文章:

  • k8s Pod 进阶(资源限制,健康检查探针详解,启动退出,pod生命周期,)
  • SpringBoot整合ActiveMQ步骤
  • MySQL的单表和多表查询
  • 攻防世界例题wp
  • 仿牛客网项目---显示评论和添加评论功能的实现
  • idea集成git详解教程(实用篇)
  • 搭建LNMP环境并配置个人博客系统
  • 为什么网络安全缺口这么大,还是这么缺网络安全工程师?
  • 创新洞察|诺奖获得者埃德蒙·费尔普斯谈未来:中国创新从何而来?
  • SpringMVC 学习(六)之视图
  • ROS 2基础概念#1:计算图(Compute Graph)| ROS 2学习笔记
  • 一本通 1403:素数对
  • 华为---RSTP(四)---RSTP的保护功能简介和示例配置
  • Android基础控件介绍
  • 【总结】Maxwell学习笔记
  • AFL fork server和fuzzer的交互
  • Java SE:多线程(Thread)
  • 你敢信?软件测试万能面试脚本他来了?
  • C++/Python简单练手题
  • 视频在线压缩
  • Python列表的合并、重复、判断与切片操作你学会了吗
  • Vue(3.3.4)+three.js(0.161.0)实现3D可视化地图
  • 瑞吉苍穹外卖如何拓展?已经经过不同公司多轮面试。项目中会问到哪些问题?以及问题如何解决?
  • 动态内存分配
  • 【C语言】常见的动态内存管理错误
  • 数据结构之二叉树的精讲
  • ETL是什么
  • 华为配置WLAN高密业务示例
  • C++——类和对象(1)
  • vue+element ui上传图片到七牛云服务器