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详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值