• Docker-概念及配置(超详细)


    docker

    第一章

    1、什么是docker

    答:docker是一种容器引擎,通过docker可以将软件安装并且配置好以后,做成一个镜像文件。通过这个镜像文件可以快速的安装、配置软件环境

    2、3个概念

        【docker镜像】:将软件环境安装配置好以后产生的镜像文件,通过它可以快速配置软件环境
    ​
        【docker仓库】:存放在docker镜像的位置 
    ​
        【docker容器】:通过docker镜像产生的一个实例(一个正在运行的应用程序)
    ​
    ​
    【问题3:配置docker的要求】
        centOs的版本必须是7或者是更高版本 

    3、安装及配置

    @@@@@@@【docker的安装以及配置】
    ​
     1、联网安装docker
        yum install docker
     
     2、启用docker
        systemctl start docker
     
     3、设置开机启动(只要Linux一加载,docker自动开启)
        systemctl enable docker
    ​
     4、如果要停止docker
        systemctl stop docker
    更改默认配置
    @@@@@@@【更改docker的默认配置】
        默认情况下,docker类似于maven,需要连接docker仓库下载docker的镜像,但docker仓库的地址在国外,下载比较慢
        所以我们一般会改成国内的地址 
    ​
    1、进入etc/docker
        cd   /etc/docker
    ​
    2、编辑 daemon.json
        
        在{}中增加下代码,默认{}中是空的
    ​
        在{}中添加如下内容
        {
        
            "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/","https://9cpn8tt6.mirror.aliyuncs.com","https://hub-mirror.c.163.com","https://registry.docker-cn.com"],"insecure-registries": ["10.0.0.12:5000"]
        
        }
    ​
    3、停止docker
        systemctl stop docker
    ​
    4、启动docker
        systemctl start docker

    4、操作docker镜像

    @@@@@@@@操作docker镜像
    ​
    1、查看当前本地仓库中存在哪些docker镜像
        
        docker images
    ​
    2、从远程仓库中查询docker镜像
        
        docker search 软件名称 
            @@@@@@@@@但这种方式是在控制台显示,不够直观,我们可以查询docker的官网进行可视化搜索 
    ​
            @@@@@@@@官网地址: hub.docker.com
    ​
    ​
    3、从远程仓库中拉取docker镜像到本地仓库中
        
        方式1: docker pull  软件名:版本号
    ​
            docker pull mysql:5.7
    ​
    ​
        
        方式2:docker pull 软件名       (如果没有指定版本号,系统默认下载最新版本)
            docker pull nginx
    ​
    ​
    4、删除镜像
    ​
        docker rmi 镜像id 
    ​
        docker rmi 605c77e624dd
    ​
        @@@@@@@注意:如果当前镜像产生了docker容器(一个正在运行的程序)该镜像无法直接删除
    ​
            删除方式1:
                1、先停止docker容器
                    docker stop  容器id
    ​
                2、再删除docker容器
                    docker rm 容器id
                
                3、最后删除docker镜像
                    docker rmi  镜像id
    ​
            删除方式2:(强制删除)
    ​
                docker rmi 镜像Id  -f

    5、操作docker容器

    @@@@@@@操作docker容器 (一个正在运行的程序)
    ​
    1、查看当前有哪些容器正在运行
    ​
        docker ps ---------------------------这个命令只能查看到正在运行的容器 
    ​
    2、查看所有容器(不论是正在运行的还是已经停止的)
        docker ps -a
    ​
    3、启动容器(通过docker镜像运行一个程序)
        
        @@@@@@不同的docker镜像启动容器的方式有所有不同,但大体步骤是一样的
    ​
        docker run  -d   -p  linux的端口号:docker中的端口号  软件名:版本号
        docker run  -d   -p  80:80  nginx
        
            docker run---------运行docker容器
    ​
            -d:表示容器在后台运行
    ​
            -p  linux系统的端口号:docker中的端口号
                此处是进行端口映射,通过linux的哪一个端口号映射到docker中的哪一个端口号
    ​
        
        例如:启动nginx容器
            docker run -d -p 80:80 nginx    
        
        例如:启动tomcat容器
            docker run -d -p 8080:8080 tomcat:8.5.20
        
        例如:启动redis容器
            docker run -d -p 6379:6379 redis
    ​
    4、停止docker容器(让一个正在运行的容器停止运行)
        
        docker stop 容器id
    ​
    ​
    5、让停止运行容器重新运行
        docker start 容器id
    ​
    ​
    6、删除容器
        docker rm  容器Id
    ​
    7、如果容器被删除了,如果要再次运行容器,就需要重新通过镜像启动
        docker run  -d -p 80:80 nginx

    image-20230821143708347

    6、nginx

    @@@@@nginx
    ​
    1、拉取nginx
        
        docker pull nginx
    ​
    2、产生nginx容器
        
        docker run -d  -p 80:80  nginx
    ​
    3、注册防火墙
        firewall-cmd --zone=public --add-port=80/tcp --permanent
        firewall-cmd --reload

    7、redis

    @@@@@配置redis
    ​
    1、拉取redis
    ​
        docker pull redis
    ​
    2、产生redis容器
        
        docker run -d  -p 6379:6379  redis
    ​
    ​
    3、注册防火墙
        firewall-cmd --zone=public --add-port=6379/tcp --permanent
        firewall-cmd --reload

    8、tomcat

    @@@@@@@@配置tomcat
    
    1、拉取tomcat
    
    	docker pull tomcat:8.5.20
    
    
    
    2、产生tomcat容器
    	
    	docker run -d  -p 9999:8080 tomcat:8.5.20
    
    
    3、注册防火墙
    	firewall-cmd --zone=public --add-port=9999/tcp --permanent
    	firewall-cmd --reload

    image-20230821153902238

    将项目部署到tomcat中
    1、在home目录下,创建tomcat目录
    mkdir -p /home/tomcat
    2、执行命令将docker中tomcat的目录挂载到外部目录中,挂载后操作外部目录就相当于在操作 docker中的目录
    docker run -d -p :8080 --name tomcat \
    -v /home/tomcat/webapps:/usr/local/tomcat/webapps --privileged=true
    tomcat:8.5.20
    \ :表示换行
    
    --name tomcat: 表示给容器指定别名tomcat
    
    -v: 挂载的命令
    
    语法:-v /外部目录:/docker容器的目录
    示例: -v /home/tomcat/webapps:/usr/local/tomcat/webapps
    
    tomcat:8.5.20:表示是通过哪一个镜像产生容器
    -d:表示后台运行
    -p 8080:8080:表示端口映射 -p 宿主机端口:docker容器的端口
    docker --privileged=true 参数作用
    
    使用该参数,container内的root拥有真正的root权限。
    否则,container内的root只是外部的一个普通用户权限
    3、部署项目
    只需要将打好的war放到设置的webapps目录即可
    
    访问: ip地址:8080/包名
    4、如果要进入容器
    docker exec -it 容器的Id /bin/bash
    或者
    docker exec -it 容器的别名 /bin/bash
    
    5、退出容器
    exit
    6、查看docker进行了哪些端口号的映射
    firewall-cmd --list-port

    9、MySQL

    @@@@@@配置Mysql
    
    1、拉取mysql
    
    	docker pull mysql:5.7
    
    2、产生mysql容器
    
    	docker run  --name some-mysql -e MYSQL_ROOT_PASSWORD=root -d -p 3307:3306 mysql:5.7
    
    	docker下的mysql:
    		初始账号 root
    		初始密码 root
    
    3、注册防火墙
    	firewall-cmd --zone=public --add-port=3307/tcp --permanent
    	firewall-cmd --reload

    image-20230821151237964

    10、rabbitmq

    @@@@@@配置rabbitmq
    
    1、拉取rabbitmq
    
    	docker pull rabbitmq:management
    
    2、产生rabbitmq容器
    
    	docker run -d -p 15672:15672  -p 5672:5672  rabbitmq:management
    
    3、注册防火墙
    	firewall-cmd --zone=public --add-port=15672/tcp --permanent
    	firewall-cmd --zone=public --add-port=5672/tcp --permanent
    	firewall-cmd --reload
    
    

    Linux防火墙

    @@@@@@需要将端口号在防火墙中注册或者是关闭防火墙
    
    	
    		@@@@@@@注册		
    		firewall-cmd --zone=public --add-port=80/tcp --permanent
    		firewall-cmd --reload
    
    		@@@@@关闭防火墙
    		systemctl stop firewalld.service            #停止firewall
    		systemctl disable firewalld.service        #禁止firewall开机启动

    服务器

    阿里云或腾讯云
    
    **服务器说白了就是一个ip,把当前虚拟机的ip换成买来的ip

    1、在阿里云服务器上部署环境、部署项目 2、git的使用

    在实际应用中,我们可以使用一个工具简化操作:“宝塔面板”

    ${pageContext.request.contextPath}---获得当前

    git使用

    	方式1:单独使用git不使用idea
    
    	方式2:结合Idea一起使用
    方式1:单独使用
    1-6
    方式1:单独使用git不使用idea的步骤:
    
    1、在当前主机中创建一个目录,作为git的本地仓库(用于存储项目向服务器推送)
    
    2、初始化git仓库
    
    	1、cmd进入目录
    	
    	2、执行命令  git init
    
    
    3、在工作区中创建新文件
    
    4、查看工作区的文件
    
    	git status
    
    
    		红色----------新文件或者是修改后的文件,此文件还没有加入到暂存区
    
    		绿色 ---------文件已经加入到了暂存区,但是还没有提交到Master主分支
    	
    
    
    5、将新文件或者是修改后的文件加入到暂存区
    	
    	git add . -------------------将所有新文件或者是修改后的文件加入暂存区
    
    
    6、将暂存区的文件,提交到主分区
    
    	git commit -m "第一次提交"
    			数据一旦提交,通过git stutus就看不见任何内容 
    7-12
    7、在gitee注册账号,并且创建仓库
    
    
    8、将本地仓库与远程git服务器关联
    
    	git remote add origin 仓库地址 
    
    	git remote add origin https://gitee.com/brucema567/d116_5.git
    
    
    9、将代码推送到远程的git仓库
    	git push -u origin master
    		
    
    10、其他用户要从远程仓库下载代码有两种方式:
    
    	方式1:clone服务器的代码
    
    		git clone 仓库地址
    
    		git clone https://gitee.com/brucema567/d116_5.git
    
    
    	方式2:pull方式从服务器拉取
    
    		1、创建目录
    
    		2、初始化目录      git init
    
    		3、关联到远程服务器  git remote add origin https://gitee.com/brucema567/d116_5.git
    
    		4、从服务器中拉取项目  git pull origin master
    
    
    
    
    11、如果修改了代码,先add,再Commit,最后push
    
    
    12、其他用户要拉取最新的代码
    	git pull origin master

  • 相关阅读:
    深入理解C++红黑树的底层实现及应用
    Android MVI架构解析以及与其他架构对比
    内存马查杀copagent研究
    配置iSCSI实现Linux的远程块存储
    【Python小练习】使用Python编写POC 脚本-上篇
    GPU学习(1)
    Linux 命令
    强 蛰伏20多年,终于登顶成为第一名
    freeswitch之目录结构
    Spring Gateway 网关常见配置说明
  • 原文地址:https://blog.csdn.net/m0_74187147/article/details/137999665