赞
踩
sudo //在前面表示以管理员权限操作
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
//安装所需资源包
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 安装
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
systemctl start docker //启动docker
systemctl enable docker //设置开机启动
#查看docker的版本
docker -v
# 查看本地主机上已有镜像的基本信息。
docker images
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文件不再需要以下内容
#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 build -t docker_web7:1.0 . //注意这里的.不能省略 表示构建在当前目录
//查看docker镜像
docker images
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拉取ngnix
docker pull nginx
//运行nginx 以80端口运行
docker run --name=nginx -p 80:80 -itd nginx:latest
//查看正在运行的镜像
docker ps
//直接访问主机ip地址即可达到nginx页面
//容器内部修改配置文件 apt-get不行 镜像无法访问
参考
参考进入docker容器的四种方式
容器内部安装命令
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; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。