Docker安装详细步骤及相关环境安装配置
mhr18 2025-05-10 23:42 28 浏览 0 评论
最近自己在虚拟机上搭建一个docker,将项目运行在虚拟机中。
需要提前准备的工具,FinallShell(远程链接工具),VM(虚拟机-配置网络)、CentOS7(Linux操作系统-在虚拟机上安装)
一、在CentOS7基础上安装Docker容器
1.已经安装CentOS7后,打开终端,我这里是切换到了root用户,不然每一个命令都要在前面加上【sudo】
2. 通过前面就知道我是CentOS7,然后官方建议Linux内核在3.10以上【可能】,所以检查当前的内核版本
我这里的版本是3.10,正好满足要求
3.使用root权限对yum包进行更新
yum -y update
注释:以下两个的区分
yum -y update:升级所有包同时也升级软件和系统内核
yum -y upgrade:只升级所有包,不升级软件和系统内核
4.如果之前已经安装过的话,可以在此卸载以前的版本。
yum remove docker docker-common docker-selinux docker-engine
5.注意了,开始安装Docker了,安装需要的软件包,分别为yum-util 提供yum-config-manager功能,另外两个则是devicemapper驱动依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
出现如下图所示,则代表成功安装了需要的软件包
6.设置yum源,我一般使用阿里仓库的,以下有两种推荐
yum-config-manager --add-repo
http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
7. 先查看一下有哪些Docker版本。
yum list docker-ce --showduplicates | sort -r
8.选择一个版本进行安装,我这里选择docker-ce-18.03.1.ce,当然可以选择其他版本
yum -y install docker-ce-18.03.1.ce
显示如上图则代表安装成功
9.启动Docker并设置开启自动启动
systemctl start docker 启动Docker
systemctl enable docker 开启开机自启模式
10.显示版本号
结束Docker的安装了
二、在Docker中进行安装Portainer
1.拉取portainer镜像,当然你可以事先搜索一下有哪些Portainer镜像
搜索镜像:docker search portainer
拉取镜像:docker pull portainer/portainer
搜索镜像
拉取镜像
2.查看镜像是否被拉取成功
docker images
3.运行portainer
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name prtainer portainer/portainer
解释:
-d:容器在后台运行;
-p 9000:9000 :宿主机9000端口映射容器中的9000端口(前面的是宿主机端口,后面的是容器端口);
–restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认不会重启;
–restart=always:自动重启该容器;
-v
/var/run/docker.sock:/var/run/docker.sock :把宿主机的Docker守护进程(Docker daemon)默认监听的Unix域套接字挂载到容器中;
-v portainer_data:/data :把宿主机portainer_data数据卷挂载到容器/data目录;
–name prtainer-test : 给容器起名为portainer;
4.查看portainer是否在运行
docker ps
5.发现portainer确实已经正在运行,所以我们现在就可以去使用Portainer了,访问地址为:http://虚拟机IP:9000,ip是指你当前虚拟机的ip,首次访问要创建管理员账号和密码(用户名:admin,密码:123456),如下图所示
这就结束了Docker安装Portainer了。
三、在Docker中安装MySQL
1、在系统中可能存在mysql的安装包,所以停止和删除相关容器:使用以下命令停止和删除使用该MySQL镜像的容器:
docker stop mysql-container # MySQL镜像的容器名称
docker rm mysql-container # MySQL镜像的容器名称
"mysql-container"为MySQL镜像的容器名称。
2、可能删除出现问题,采用强制删除MySQL镜像:使用以下命令强制删除MySQL镜像:
docker rmi -f mysql:latest
3、这将强制删除名为"mysql:latest"的MySQL镜像。
4、当删除完成之后,重新拉取MySQL镜像:
docker pull mysql:latest
5、重新运行MySQL容器:在删除容器和镜像后,重新运行MySQL容器:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql
6、运行完成之后,检验是否安装成功
docker exec -it mysql-container bash #进入mysql容器中
mysql -r -p #输入密码登录
select version(); #查看版本号
Show databases; #查看全部数据库
7、至此数据库MySQL安装完成。
8、为了方便操作数据库,我们使用Navicat,来远程链接虚拟机MySQL。
9、通过SSH方式链接。
10、可以查看到全部的数据库,方便开发使用。
11、通过portainer查看MySQL运行情况
四、Docker安装JDK8,安装Java环境
1、拉取Java镜像(OpenJDK 8):
sudo docker pull openjdk:8-jdk
2、创建一个目录来共享Java安装文件:
sudo mkdir /opt/java
3、运行Java容器并将Java安装文件复制到宿主机的目录中:
sudo docker run --name myjava -v /opt/java:/java -it openjdk:8-jdk bash
4、这将在交互模式下启动一个Java容器,并将其命名为myjava。然后,您可以在容器内执行以下命令将Java安装文件复制到宿主机的/opt/java目录中:
cp -r /usr/lib/jvm/java-8-openjdk /java
5、退出容器:
exit
6、配置Java环境变量:
7、打开/etc/profile文件:
sudo vi /etc/profile
8、在文件末尾添加以下行:
export JAVA_HOME=/opt/java/java-8-openjdkexport PATH=$PATH:$JAVA_HOME/bin
9、保存并关闭文件。
10让环境变量生效:
source /etc/profile
11、验证Java是否正确安装:
java -version
12、Java正确安装,可以看到JDK 8的版本信息。
13、可以通过portainer查看jdk是否在运行
五、Docker安装redis(缓存)
1、拉取Redis镜像并运行容器:
拉取Redis镜像:
sudo docker pull redis
运行Redis容器:
sudo docker run -d --name myredis -p 6379:6379 redis
2、这将在后台运行一个名为myredis的Redis容器,并将容器内的6379端口映射到主机的6379端口。
验证Redis是否正确安装:
使用Redis客户端连接到Redis容器:
sudo docker exec -it myredis redis-cli
3、在Redis命令行中执行一些简单的命令,例如:
4、set mykey "Hello Redis"get mykey
5、能够成功设置和获取键值对,则表示Redis已正确安装并运行。
6、可以在portainer查看redis是否在运行
准备工作(项目运行所需要的环境已经部署完成)。
六、项目部署所需
1、需要C和C++的环境
1、在docker中下载环境并部署
yum install gcc
yum install gcc-c++
2、输入命令检查是否安装成功
gcc --version
g++ --version
3、C和C++的环境安装成功!
2、需要Nginx反向代理
1、docker pull nginx
2、docker run -d -p 80:80 --name mynginx nginx
3、打开浏览器输入localhost:8080,可以出现默认nginx的页面,表示安装成功。
相关推荐
- 【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库
-
如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!.前言在当今数据驱动的时代,高效、智能地管理数据已成为企业和个人不可或缺的能力。为了满足这一需求,我们推出了这款开...
- Pure Storage推出统一数据管理云平台及新闪存阵列
-
PureStorage公司今日推出企业数据云(EnterpriseDataCloud),称其为组织在混合环境中存储、管理和使用数据方式的全面架构升级。该公司表示,EDC使组织能够在本地、云端和混...
- 对Java学习的10条建议(对java课程的建议)
-
不少Java的初学者一开始都是信心满满准备迎接挑战,但是经过一段时间的学习之后,多少都会碰到各种挫败,以下北风网就总结一些对于初学者非常有用的建议,希望能够给他们解决现实中的问题。Java编程的准备:...
- SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!
-
官网:https://sqlshift.cn/6月,SQLShift迎来重大版本更新!作为国内首个支持Oracle->OceanBase存储过程智能转换的工具,SQLShift在过去一...
- JDK21有没有什么稳定、简单又强势的特性?
-
佳未阿里云开发者2025年03月05日08:30浙江阿里妹导读这篇文章主要介绍了Java虚拟线程的发展及其在AJDK中的实现和优化。阅前声明:本文介绍的内容基于AJDK21.0.5[1]以及以上...
- 「松勤软件测试」网站总出现404 bug?总结8个原因,不信解决不了
-
在进行网站测试的时候,有没有碰到过网站崩溃,打不开,出现404错误等各种现象,如果你碰到了,那么恭喜你,你的网站出问题了,是什么原因导致网站出问题呢,根据松勤软件测试的总结如下:01数据库中的表空间不...
- Java面试题及答案最全总结(2025版)
-
大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...
- 数据库日常运维工作内容(数据库日常运维 工作内容)
-
#数据库日常运维工作包括哪些内容?#数据库日常运维工作是一个涵盖多个层面的综合性任务,以下是详细的分类和内容说明:一、数据库运维核心工作监控与告警性能监控:实时监控CPU、内存、I/O、连接数、锁等待...
- 分布式之系统底层原理(上)(底层分布式技术)
-
作者:allanpan,腾讯IEG高级后台工程师导言分布式事务是分布式系统必不可少的组成部分,基本上只要实现一个分布式系统就逃不开对分布式事务的支持。本文从分布式事务这个概念切入,尝试对分布式事务...
- oracle 死锁了怎么办?kill 进程 直接上干货
-
1、查看死锁是否存在selectusername,lockwait,status,machine,programfromv$sessionwheresidin(selectsession...
- SpringBoot 各种分页查询方式详解(全网最全)
-
一、分页查询基础概念与原理1.1什么是分页查询分页查询是指将大量数据分割成多个小块(页)进行展示的技术,它是现代Web应用中必不可少的功能。想象一下你去图书馆找书,如果所有书都堆在一张桌子上,你很难...
- 《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略
-
《战场兄弟》全事件攻略,一般事件合同事件红装及隐藏职业攻略。《战场兄弟》事件奖励,事件条件。《战场兄弟》是OverhypeStudios制作发行的一款由xcom和桌游为灵感来源,以中世纪、低魔奇幻为...
- LoadRunner(loadrunner录制不到脚本)
-
一、核心组件与工作流程LoadRunner性能测试工具-并发测试-正版软件下载-使用教程-价格-官方代理商的架构围绕三大核心组件构建,形成完整测试闭环:VirtualUserGenerator(...
- Redis数据类型介绍(redis 数据类型)
-
介绍Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sortedset:有序集合)。1、字符串类型概述1.1、数据类型Redis支持...
- RMAN备份监控及优化总结(rman备份原理)
-
今天主要介绍一下如何对RMAN备份监控及优化,这里就不讲rman备份的一些原理了,仅供参考。一、监控RMAN备份1、确定备份源与备份设备的最大速度从磁盘读的速度和磁带写的带度、备份的速度不可能超出这两...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)