Centos7系统 Docker 安装和使用教程(超详细附带常用的容器部署代码)

简介

Docker是一个开源的容器化平台,可帮助开发者轻松地创建、部署和运行应用程序。Docker使开发人员能够在一个独立的容器中打包应用程序及其依赖项,这样他们就可以轻松地将应用程序移植到任何其他环境中。

使用Docker的主要优势:

  1. 便于部署:由于Docker容器可以在任何支持Docker的平台上运行,因此应用程序可以轻松地在不同的环境中部署和运行。
  2. 隔离性:Docker容器提供了隔离的运行环境,使得应用程序可以在独立的环境中运行,从而避免了依赖冲突和其他问题。
  3. 可移植性:Docker容器可以轻松地从一个平台移植到另一个平台,从而使应用程序在不同的平台上运行变得更加容易。
  4. 安全性: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'
init_connect='SET NAMES utf8'
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

进去了就算成功

如果这篇【文章】有帮助到你,希望可以给笔者点个赞👍,创作不易,感兴趣的也可以关注一下笔者,后续也会更新更多的内容,例如状态机和工作流的实践,都会在后续慢慢更新。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>