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;}}