Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码)
yeye0001 2024-07-06 11:07:02 阅读 72
简介
<code>Docker是一个开源的容器化平台,可帮助开发者轻松地创建、部署和运行应用程序。Docker
使开发人员能够在一个独立的容器中打包应用程序及其依赖项,这样他们就可以轻松地将应用程序移植到任何其他环境中。
使用Docker
的主要优势:
便于部署:由于Docker
容器可以在任何支持Docker
的平台上运行,因此应用程序可以轻松地在不同的环境中部署和运行。隔离性:Docker
容器提供了隔离的运行环境,使得应用程序可以在独立的环境中运行,从而避免了依赖冲突和其他问题。可移植性:Docker
容器可以轻松地从一个平台移植到另一个平台,从而使应用程序在不同的平台上运行变得更加容易。安全性:Docker
容器提供了安全性隔离,使得应用程序和它的依赖项可以在受保护的环境中运行,从而减少了潜在的安全风险。
官方安装文档
Docker 官方安装文档:https://docs.docker.com/install/linux/docker-ce/centos/
doker安装(Centos7服务器版本)
1、卸载系统之前可能安装的 docker(防止冲突)
卸载系统之前可能安装的 docker(防止版本不一致,发生冲突)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装 Docker-CE 基本环境
安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置 docker repo 的 yum 位置
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装 docker,以及 docker-cli
sudo yum install docker-ce docker-ce-cli containerd.io
这样就安装好docker
和基本环境了,接下来就可以启动docker
了
3、启动 docker
#启动docker
sudo systemctl start docker
#查看docker服务状态 running 就是启动成功
sudo systemctl status docker
4、设置 docker 开机自启
sudo systemctl enable docker
5、测试 docker 常用命令
docker命令官方文档 https://docs.docker.com/engine/reference/commandline/docker/
Docker
的常用命令:
#镜像命令
docker images:列出所有镜像
docker search [image]:搜索 Docker 镜像
docker pull [image]:拉取指定镜像
docker rmi [image]:删除指定镜像
#容器命令
docker ps:列出当前所有正在运行的容器
docker ps -a:列出所有容器,包括已经停止的容器
docker create [image]:创建一个新的容器,但不启动它
docker start [container]:启动一个容器
docker stop [container]:停止一个容器
docker rm [container]:删除一个容器
docker exec -it [container] [command]:在运行中的容器中执行命令
#其他命令
docker info:显示 Docker 系统信息
docker version:显示 Docker 版本信息
docker logs [container]:查看容器的日志
docker network ls:列出 Docker 网络
docker network create [network]:创建一个新的 Docker 网络
docker network connect [network] [container]:将容器连接到指定的 Docker 网络
docker network disconnect [network] [container]:将容器从指定的 Docker 网络中断开连接
6、配置 docker 镜像加速
配置 docker阿里云容器镜像服务镜像加速,可以使您的docker使用起来更流畅
注意:针对 Docker 客户端版本大于 1.10.0 的用户
您也可以直接通过修改daemon
配置文件/etc/docker/daemon.json
来使用其他的加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docke
上述代码的意思是在本机创建/etc/docker
目录,创建文件daemon.json
,在其中输入一下代码,重启docker。
{
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}
Docker 容器化安装 Mysql 容器
MySQL 配置
创建挂载的目录
vi /mydata/mysql/conf/my.cnf
输入以下配置文件
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'code>
init_connect='SET NAMES utf8'code>
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
1、下载镜像文件,创建实例并启动
不多废话,直接上代码
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306
:将容器的 3306 端口映射到主机的 3306 端口-v /mydata/mysql/conf:/etc/mysql/conf.d
:将配置文件夹挂载到主机-v /mydata/mysql/log:/var/log/mysql
:将日志文件夹挂载到主机-v /mydata/mysql/data:/var/lib/mysql
:将数据文件夹挂载到主机-e MYSQL_ROOT_PASSWORD=root
:初始化 root 用户的密码
注意:-v /mydata/mysql/conf:/etc/mysql/conf.d
,这段代码笔者在使用时遇到一些错误,挂载时需要加上conf.d
,如果部署发生错误,尝试去除这段,换用以下部署代码
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
2、进入容器,修改权限
使用容器mysql命令行工具
docker exec -it mysql mysql -uroot -proot
设置 root 远程访问
//设置远程root密码登录,与本地root密码登录不同
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
// 如需修改
//alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
进入容器内部,查看配置文件是否挂载成功
docker exec -it mysql /bin/bash
cd /etc/mysql/conf.d
cat my.cnf
注意:挂载的配置文件要先创建才可以看到容器内部是否生效,即要先创建/mydata/mysql/confmy.cnf
文件才能观察到内外配置信息。
Docker 容器化安装 Redis 容器
Redis 配置
创建挂载的目录
vi /mydata/redis/conf/redis.conf
输入以下配置文件
# 暂无
#password= 123
1、下载镜像文件,创建实例并启动
不多废话,直接上代码
docker pull redis
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
参数说明
-p 6379:6379
:将容器的 3306 端口映射到主机的 3306 端口-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf
:将配置文件夹挂载到主机-v /mydata/redis/data:/data
:将数据文件夹挂载到主机
2、进入容器
#重启redis
docker restart redis
#启动redis客户端
docker exec -it redis redis-cli
Docker 容器化安装 Nacos容器
mysql创建nacos的数据库
create database nacos_config
SQL 文件:db/nacos-db.sql · yeye/gmall - 码云 - 开源中国 (gitee.com)
Nacos配置
创建挂载的目录
mkdir -p /mydata/nacos/conf/ #新建nacos的logs目录
mkdir -p /mydata/nacos/logs/
vim /mydata/nacos/conf/application.properties #新建并修改nacos的配置文件
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
注意: 这里的配置需要把数据库链接配置一下。
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass
修改为自己的数据库地址和账号密码
下载镜像文件,创建实例并启动
不多废话,直接上代码
docker pull nacos/nacos-server:1.1.4
docker run -d \
--name nacos \
-p 8848:8848 \
--restart=always \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-v /mydata/nacos/logs:/home/nacos/logs \
-v /mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties \
nacos/nacos-server
参数说明
-p 6379:6379
:将容器的 3306 端口映射到主机的 3306 端口/mydata/nacos/conf/application.properties:/home/nacos/conf/application.properties
:将配置文件夹挂载到主机-v /mydata/nacos/logs:/home/nacos/logs
:将日志文件夹挂载到主机
进入容器
#重启redis
docker restart nacos
#进入容器
docker exec -it nacos bash
访问 Nacos
访问地址:http://x.x.x.x:8848/nacos (这里是服务器的ip地址)
账号密码:nacos / nacos
进去了就算成功
如果这篇【文章】有帮助到你,希望可以给笔者点个赞👍,创作不易,感兴趣的也可以关注一下笔者,后续也会更新更多的内容,例如状态机和工作流的实践,都会在后续慢慢更新。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。