Docker 环境部署
来源:SegmentFault
时间:2023-02-19 10:12:12 265浏览 收藏
你在学习数据库相关的知识吗?本文《Docker 环境部署》,主要介绍的内容就涉及到MySQL、Redis、Java,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!
安装Docker容器
Docker 官方安装地址
https://docs.docker.com/engin...
第一步:安装yum-utils(管理repository及扩展包的工具,可提供yum操作性能)
sudo yum install -y yum-utils
- sudo让普通用户具有普通管理元的权限执行操作
- Yum是一个RedHat以及CentOS中的Shell软件包管理器
第二步:设置docker 安装镜像
sudo yum-config-manager --add-repo https://download.docker.com/l...
第三步:安装docker-ce ( CE- Community Edition是社区版)
sudo yum install docker-ce docker-ce-cli containerd.io
第四步:启动docker (systemclt指令用于启动、关闭服务等)
sudo systemctl start docker
第五步:设置docker自启动(操作系统启动时docker也启动)
FAQ:
运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决
删除文件后再次运行yum
rm -f /var/run/yum.pid
Docker 加速设计
- 创建目录: sudo mkdir -p /etc/docker
- 镜像设置: sudo tee /etc/docker/daemon.json {
"registry-mirrors": ["https://ar2qkqym.mirror.aliyuncs.com"]
}
EOF - 重新加载配置: sudo systemctl daemon-reload
重启docker: sudo systemctl restart docker
安装JDK软件
镜像方式安装
第一步:拉取镜像(从hub.docker.com)
docker pull benwang6/tedu-jdk
第二步:检查镜像
docker images
第三步:测试-从镜像运行启动容器,在容器中运行java -jar
docker run -d -p 9411:9411 -v /root/libs/sca/:/sca --entrypoint java benwang6/tedu-jdk -jar /sca/zipkin-server-2.23.2-exec.jar
docker在后台(-d)启动运行一个容器(进程),并将/root/libs/sca目录中的资源挂载(-v)到/sca挂载点,将容器端口9411映射到宿主机端口9411,然后通过java 指令执行挂在点资源(其中zipkin-server-2.23.2-exec.jar文件为我们要执行的挂载点文件),--entrypoint的含义为覆盖镜像中写的entrypoint选项(这个镜像文件中有写entrypoint选项),注--entrypoint指令的位置
自己制作镜像
第一步:拉取centos空的镜像(制作镜像时需要有一个空的centos:7镜像)
docker pull centos:7
第二步:创建目录并在目录中直接通过vim编辑此文件(通过mkdir指令实现)
mkdir jdk
第三步:在jdk目录下创建通过vim 指令编辑Dockerfile文件(文件不存在自动创建)
vim Dockerfile #注意文件的大小写(制作镜像时有严格规范)
文件内容如下: FROM centos:7 ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \ PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH CMD ["bash"]
保存退出。
第三步:构建镜像(-t表示为镜像起个名字,名字后面的点表示当前目录)
docker build -t jdk:8 .
第四步:查看构建的镜像
docker images
第五步:测试镜像文件
docker run -d -p 9411:9411 -v /root/libs/sca/:/sca jdk:8 java -jar /sca/zipkin-server-2.23.2-exec.jar
第六步:通过如下指令查看服务是否已启动
docker ps
第七步:保存镜像并起各名字 (可选,假如要将镜像传给别人可以直接下面的操作)
docker save jdk:8 | gzip>linux-jdk8.gz
接收并执行load
docker load -i linux-jdk8.gz
FAQ:
如何看docker中镜像? docker images
如何删除docker中镜像?docker image rm 镜像名或imageId
如何加载本地镜像? docker load –i 镜像名
如何启动容器?docker run 。。。。。
如何查看正在运行的容器?docker ps
如何查看所有容器?(包含启动失败和停止容器)?docker ps –a
如何停止正在运行容器? docker stop 容器id
如何重启容器? docker restart 容器id
如何删除处于终止状态的容器? docker container prune
如何删除处于运行状态的容器(不推荐)? docker container rm –f 容器id
如何查询启动容器的日志?docker container logs 容器id
如何查看容器详细信息? docker container inspect 容器id
查看docker 容器选项信息? docker contianer
直接安装方式
:上传JDK安装包
:解压JDK文件
tar -xvf jdk-7u51-linux-x64.tar.gz
:配置环境变量
说明:修改Linux系统中环境变量需要修改/etc/profile文件
命令:vim /etc/profile
配置文件变量
#set java env JAVA_HOME=/usr/local/src/java/jdk1.7.0_51 JAVA_BIN=/usr/local/src/java/jdk1.7.0_51/bin PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH
:环境变量生效:
source /etc/profile
:检测jdk:
java -version
安装Database软件
安装MySql数据库
第一步:在hub.docker.com上搜索mysql镜像
第二步:拉取指定版本的mysql
sudo docker pull mysql:8.0.23
第三步:检查mysql镜像
sudo docker images
第四步:启动运行mysql镜像 (docker run 用于启动一个容器)
sudo docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:8.0.23
假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可
第五步:启动mysql
docker start mysql
第六步:查看docker启动的服务
docker ps
第七步:进入容器 (退出容器用exit)
sudo docker exec -it mysql bash
第八步:登陆
mysql -uroot -p
第九步:设置mysql开机自启动(可选)
docker update mysql --restart=always
FAQ
重启mysql:
docker restart mysql
查看mysql安装路径:
whereis mysql
创建mysql账户并为其设置权限
create user ‘tony’@’%’identified by ‘tony’; grant all on *.* to ‘tony’@‘%’;
关闭防火墙:
sudo systemctl stop firewalld.service
重启docker:
sudo systemctl restart docker
######安装Redis 内存数据库
第一步:下载镜像文件
docker pull redis
第二步:创建redis实例并启动
创建redis配置文件目录: mkdir -p /usr/local/docker/redis/conf 在配置文件录下创建redis.conf配置文件 (因为redis镜像中这个redis.conf是一个目录所以要先创建一个这个配置文件,否在我们本地挂载点也会变成一个目录): touch /usr/local/docker/redis/conf/redis.conf
sudo docker run -p 6379:6379 --name redis \ -v /usr/local/docker/redis/data:/data \ -v /usr/local/docker/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf
第三步:查看正在运行的进程
docker ps
第四步:控制台直接连接redis测试
docker exec -it redis bash
第五步:检测redis 版本
Redis-server –v
或者
redis-cli -v
第五步:登录redis(默认不需要密码)
redis-cli
或者
docker exec -it redis redis-cli
FAQ
停止redis:
docker stop redis
启动redis:
docker start redis
重启redis:
docker restart redis
查看redis版本:
docker exec -it redis redis-server -v
安装分布式中间件
安装Ngnix代理
- docker pull nginx:latest
- docker images
- docker run --name nginx -d nginx
检测安装的内容docker exec nginx ls -l /etc/nginx
第四步:拷贝安装好的配置文件
docker cp -a nginx:/etc/nginx /usr/local/docker/nginx
这里是将docker中的nginx复制到宿主机的nginx目录
第五步:强制卸载刚刚安装的nginx
docker rm -f nginx
第六步:启动nginx容器,运行nginx镜像
sudo docker run -p 80:80 --restart always --name nginx \ -v /usr/local/docker/nginx/:/etc/nginx/ \ -d nginx
好了,本文到此结束,带大家了解了《Docker 环境部署》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!
-
499 收藏
-
286 收藏
-
244 收藏
-
235 收藏
-
157 收藏
-
227 收藏
-
306 收藏
-
418 收藏
-
339 收藏
-
279 收藏
-
189 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习
-
- 冷酷的月亮
- 这篇技术文章真是及时雨啊,好细啊,写的不错,已收藏,关注作者大大了!希望作者大大能多写数据库相关的文章。
- 2023-05-18 13:23:16
-
- 坚定的网络
- 细节满满,收藏了,感谢楼主的这篇文章,我会继续支持!
- 2023-05-16 11:37:11
-
- 天真的棉花糖
- 这篇文章内容真及时,楼主加油!
- 2023-04-08 12:20:29
-
- 迷人的金针菇
- 很有用,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢大佬分享技术贴!
- 2023-03-04 18:50:57
-
- 雪白的火车
- 真优秀,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢up主分享技术贴!
- 2023-03-04 15:08:57
-
- 优秀的水杯
- 这篇文章内容真是及时雨啊,太全面了,很有用,码住,关注师傅了!希望师傅能多写数据库相关的文章。
- 2023-03-04 14:28:46