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

进去了就算成功

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。