Docker笔记整理

news2024/11/13 9:19:54

安装Docker

通过 uname -r 命令查看你当前的内核版本

uname -r

 使用 root 权限登录 Centos。确保 yum 包更新到最新

yum -y update

卸载旧版本(如果安装过旧版本的话)

yum remove docker docker-common docker-selinux docker-engine

安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

设置yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

可以查看所有仓库中所有docker版本,并选择特定版本安装

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

安装docker

sudo yum install -y docker-ce 

启动并加入开机启动

systemctl start docker
systemctl enable docker

验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

docker version

配置阿里云镜像加速

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,左侧菜单选中镜像加速器就可以看到你的专属地址了:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://***.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

输入:docker info (配置成功)

部署项目

查看所有容器

docker ps -a

查看正在运行的容器

docker ps

查询所有镜像

docker images

查询容器日志

sudo docker logs f02631f986f3(容器ID)

停止容器

docker stop f02631f986f3(容器ID)

删除容器

docker rm 容器ID

删除镜像

docker rmi 镜像ID

制作java项目镜像

docker build -t  demo(项目名):1.0  .

运行项目

docker run -d -p 9999(对外端口):9999(项目端口) demo(项目名):1.0
访问:虚拟机ip:9999(对外端口)/demo(项目名)/

Dockerfile文件样例

#创建一个文件夹将Dockerfile文件和项目jar包放在一起
#注:Dockerfile文件没有后缀.txt
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER david "8888@qq.com"
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为****.jar
ADD demo.jar demo.jar
# 设置暴露的端口号
#EXPOSE 9999
# 运行jar包

ENTRYPOINT ["java","-jar","/demo.jar"]

安装Nginx

先拉取nginx镜像 

docker pull nginx

返回到root目录下使用命令在源主机上新建文件夹

mkdir -p nginx/{conf,html,log}

启动临时nginx

docker run -d --name nginx_test nginx

 拷贝需要挂载的文件

docker cp nginx_test:/etc/nginx/conf.d /root/nginx/conf

docker cp nginx_test:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf

docker cp nginx_test:/usr/share/nginx/html/index.html /root/nginx/html/index.html

 删除临时nginx

docker rm -f nginx_test

创建挂载的nginx

docker run -d -p 80:80 --name nginx \
-v /root/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/html/index.html:/usr/share/nginx/html/index.html \
-v /root/nginx/log:/var/log/nginx \
nginx

验证:

修改配置文件 cd到/root/nginx/conf/目录下ch


user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    
    
    server {
        listen       8080;
        server_name  localhost;
		client_max_body_size 1024M;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
	
		location /demo/ {
            proxy_pass       http://demo_9999/demo/;
            proxy_redirect  default;
            proxy_set_header  Host $host;
            proxy_set_header  X-Real-IP $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 60; 
            proxy_read_timeout 90; 
            proxy_send_timeout 90;
        }
		

		location ~ ^/nginx-status/ { 
			stub_status on; #Nginx ״̬ݠ࠘Ƥ׃
			access_log off; 
		}
	
    }
    
	upstream demo_9999 {
        #ip使用Docker的ip
		server 172.17.0.1:9999 weight=10;
	}
	
}

保存后重启Nginx

#关闭Nginx容器
docker stop nginx 或者 docker stop 容器ID
#删除Nginx容器
docker rm nginx
#启动
docker run -d -p 8080:8080 --name nginx -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/html/index.html:/usr/share/nginx/html/index.html -v /root/nginx/log:/var/log/nginx nginx

 访问验证

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web前端已死?别带节奏了,说白了就是“卷”

趁着“前端已死”这个话题还有点热度&#xff0c;我想再好好聊聊这个话题。社区里怎么只有前端已死的论调&#xff0c;后端、DB、运维、连原生开发还在好好“划水”。前端却发出了哀嚎&#xff1a;前端已死&#xff0c;找工作好难啊。 前端技术精微渊深&#xff0c;除了基础的…

( 数组和矩阵) 766. 托普利茨矩阵 ——【Leetcode每日一题】

❓766. 托普利茨矩阵 难度&#xff1a;简单 给你一个 m x n 的矩阵 matrix 。如果这个矩阵是托普利茨矩阵&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果矩阵上每一条由左上到右下的对角线上的元素都相同&#xff0c;那么这个矩阵是 托普利茨矩阵 。…

【Python习题集7】Python对CSV文件数据进行可视化

csv可视化 一、实验内容二、实验总结 一、实验内容 1、datal.csv中的B、C、D和E列数据分别是日期、权重、A企业的销售额、B企业的销售额。读取C、D、E列数据&#xff0c;并统计E列数据的算术平均数、加权平均值(权值为C列数据)、方差、中位数、最小值、最大值。并绘制E列数据的…

MyBatis:使用 MyBatis 实现多表查询(多对一和一对多)、动态 SQL、缓存

文章目录 MyBatis&#xff1a;Day 03一、复杂查询的环境搭建二、多表查询1. 多对一&#xff1a;关联&#xff08;1&#xff09;联表查询&#xff08;2&#xff09;子查询 2. 一对多&#xff1a;集合&#xff08;1&#xff09;联表查询&#xff08;2&#xff09;子查询 3. 总结 …

JavaScript学习(一)

一、JavaScript的背景及知识结构 1、三个问题 什么是JavaScript&#xff1f;JavaScript能干什么&#xff1f;JavaScript是由什么构成的&#xff1f;怎样学习JavaScript&#xff1f; 2、什么是JavaScript&#xff1f; ①JavaScript是一种轻量级的编程语言&#xff1b;借鉴了J…

2023年2月573名学员通过国家信息安全水平考试其中CISP218名,NISP二级355名

北京PER20230217HEBAN3 考试时间&#xff1a;2023年02月17日 地点&#xff1a;北京 王佳俊、王后月、程鹏、王海洋、牛麒盛、张飞、禹晓瑞、李鹏卫、柳位世、李霖、刘志超、刘峰、张广军、刘鑫博、王琳、翟栋、刘高军、康寅哲、夏中玲、冯光豪、程岩辉、白玉强、遆盼明、李淼…

IDEA部署tomcat项目

文章目录 只是部署一下看到这里即可war和war exploded的区别warwar exploded update的动作update resourcesupdate classes and resourcesredeployrestart server 解决了拿到了一个tomcat项目后如何将它部署到IDEA里面的问题。 file->open 选中pom.xml并open as project …

【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

大家好&#xff0c;欢迎来到停止重构的频道。 本期我们讨论网络代理。 在往期《大型网站 安全性》介绍过&#xff0c;出于网络安全的考虑&#xff0c;一般大型网站都需要做网络区域隔离&#xff0c;以防止攻击者直接操控服务器。 网站系统的应用及数据库都会放在这个网络安全…

js实现归并排序(mergeSort)

理解归并排序 归并排序是一种基于分治思想的排序算法&#xff0c;它将一个待排序的序列分为两个子序列&#xff0c;分别对子序列进行排序&#xff0c;然后将排好序的子序列合并成一个有序的序列。这个过程可以递归地进行&#xff0c;直到序列被划分为只有一个元素时停止递归。 …

版本控制 | 如何使用虚幻引擎的多用户编辑(MUE)功能

随着现代虚拟制作技术的发展&#xff0c;电影制片厂不再需要完全依赖实际场景&#xff0c;而是可以在拍摄期间就让虚拟制作设计团队将实景与计算机生成的虚拟内容融合在一起。虚幻多用户编辑&#xff08;Unreal Multi-User Editing&#xff0c;简称MUE&#xff09;可以帮助简化…

【产品方案】后台管理系统设计思路

第一章 前言 相比前端设计&#xff0c;我更喜欢设计后台管理系统。如果说前端设计考验的是共情能力&#xff0c;那后台管理系统设计考研的就是逻辑能力&#xff0c;前者需要站在用户的角度&#xff0c;后者是站在管理者的角度思考。 有幸参与了公司不少业务系统从“0-1”的设计…

使用prometheus时发现mongodb exporter的/metrics数据展示很慢,延迟高

项目场景&#xff1a; 使用prometheusgrafana搭建对mongoDB集群的监控。 问题描述 使用prometheus时发现mongodb exporter的/metrics数据展示接口很慢&#xff0c;延迟高。 看了一下大概是10s 原因分析&#xff1a; 由于是在云服务器上进行搭建的。 经过尝试之后发现创建mo…

Apache Doris学习记录

1. Doris基础学习 中文官网:https://doris.apache.org/zh-CN/docs/dev/summary/basic-summary/ 1.1 doris 简介 Apache Doris 是一个现代化的 MPP(Massively Parallel Processing&#xff0c;即大规模并行处理) 分析型数据库产品 亚秒级响应时间即可获得查询结果 可以支持 10PB…

Python每日一练:最长递增的区间长度(一行代码花样解法)

文章目录 前言一、题目二、一行超人三、分析一下思路 总结 前言 很显然&#xff0c;Python的受众远远大于C&#xff0c;其实笔者本人对Python的理解也是远强于C的&#xff0c;C纯粹是为了假装笔者是个职业选手才随便玩玩的&#xff0c;借着十多年前学的C的功底&#xff0c;强行…

链表(数据结构)

目录 链表 链表的分类 1、单向或者双向 2、带头或者不带头 3、循环或者非循环 总结&#xff1a; 单链表 创建链式结构 创建新节点 尾插 尾删 头插 头删 查找节点 在pos位置后插入 删除pos位置后的节点 销毁 链表 概念&#xff1a; 链表是一种物理结构上非连续的、非顺序的存储结…

c# 数据保存为PDF(二) (Aspose pdf篇)

文章目录 前言关于Aspose PDF使用Aspose.Pdf常用的命名空间和类库1 创建简单的PDF文档2 美化PDF样式2.1 创建测试数据2.2 项目头部样式2.3 全部代码 小结附录参考 前言 项目中需要将数据导出存为PDF格式&#xff0c;试了一下Aspose组件&#xff0c;仅以此记录一下使用感受。 …

设计模式——原型模式(浅拷贝和深拷贝)

是什么&#xff1f; 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象&#xff1b; 结构 抽象原型类&#xff1a;规定了具体原型对象必须实现的Clone&#xff08;&#xff09;方法&#xff1b; 具体原型类&#xff1a;实现抽象…

Elasticsearch:NLP 和 Elastic:入门

自然语言处理 (Natural Language Processing - NLP) 是人工智能 (AI) 的一个分支&#xff0c;专注于尽可能接近人类解释的理解人类语言&#xff0c;将计算语言学与统计、机器学习和深度学习模型相结合。 AI - Artificial Inteligence 人工智能ML - Machine Learning 机器学习DL…

集线器、网桥、交换机

一.集线器 集线器&#xff08;HUB&#xff09;&#xff0c;它是工作在物理层的设备&#xff0c; 由于它只是工作在物理层的设备&#xff0c;所以它并不关心也不可能关心OSI上面几层所涉及的&#xff0c;它的工作机制流程是&#xff1a;从一个端口接收到数据包时&#xff0c;会在…

STL基础

目录 一、STL的诞生 二、STL基本概念 三、STL六大组件 大体分为六大组件&#xff1a;容器、算法、迭代器、仿函数、适配器&#xff08;配接器&#xff09;、空间配置器 四、容器、算法与迭代器的认识 容器container&#xff1a;存放数据地方 算法algorithm&#xff1a;解…