AnolisOS 8中使用Docker
介绍
本文主要作为个人记录使用,初学者有意也可以作为一点参考。
AnolisOS 8安装
一、下载系统镜像
我们直接进入到龙蜥官网进行下载:https://mirrors.openanolis.cn/anolis/8.8/isos/GA/x86_64/
官方文档:https://docs.openanolis.cn/products/anolis/rnotes/anolis-8.8.html#21-iso-%E9%95%9C%E5%83%8F
二、创建AnolisOS虚拟机
1、我们使用VMware Workstation工具来创建AnolisOS 8虚拟机,点击创建新的虚拟机然后选择典型进入下一步。
2、然后我们选择稍后安装操作系统,系统镜像后面再配置,然后点击下一步。
3、我们这里操作系统选择Linux,版本选择CentOS 7 64位(有需要的同学可以选择CentOS 8),然后点击下一步。
4、设置虚拟机名称和安装位置,点击下一步。
5、设置磁盘大小,根据情况自行调整,点击下一步。
6、最后点击完成即可。
7、放回主页面后,选择创建刚刚的虚拟机,然后点击编辑虚拟机设置。
8、设置情况自行虚拟机内存、处理器大小,然后配置ISO文件(第一步下载下来的文件),完成后点击确定。
9、编辑完成后点击开机虚拟机。
10、初始化虚拟机选择第一项即可。
11、设置语言后点击继续。
12、选择安装目的地。
13、选择自动,然后点击完成。
14、然后设置root密码
15、设置好后,点击完成。
17、都设置完成后点击,开始安装。(安装的时间较久)
18、安装完成之后,点击重启系统。
19、系统重启之后需要进行初始化设置,主要是授权许可,根据自身需求创建用户。
20、选择我同意许可协议,然后点击完成。
21、设置完成之后,点击结束配置。
22、加载完成之后就可以进入AnolisOS系统了,然后开始配置一些系统信息吗,到此安装就结束了。
23、连接网络,点击右上角菜单栏,然后如图操作即可接入本机网络。
24、点击活动,选择终端,输入ifconfig查看当前虚拟机IP地址,以便后续使用Xshell等工具进行连接。
三、AnolisOs默认防火墙常用命令
- 检查 firewalld 状态
sudo systemctl status firewalld
- 启动 firewalld 服务
sudo systemctl start firewalld
- 停止 firewalld 服务
sudo systemctl stop firewalld
- 重启 firewalld 服务
sudo systemctl restart firewalld
- 查看当前激活的防火墙规则
sudo firewall-cmd --list-all
- 查看指定区域的规则
sudo firewall-cmd --list-all --zone=public
- 添加规则(例如,允许端口)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
- 删除规则
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
- 重新加载防火墙规则
sudo firewall-cmd --reload
- 验证端口是否已开放
sudo firewall-cmd --list-ports
四、Docker安装启动(在线版)
1、删除老版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、安装工具包
sudo yum install -y yum-utils
3、设置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
4、安装docker引擎
建议切换至root账号
su -
安装最新版本的docker CE
sudo yum install -y docker-ce
注:如果在安装docker CE中出现以下报错,可以执行以下两行命令,删除之后重新执行安装docker CE命令
rpm -qa|greap runc
yum remove runc
5、启动docker CE并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker
6、设置阿里云镜像仓库
地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
登录自己的阿里云账号,复制代码执行
7、检查docker是否成功运行
sudo systemctl status docker.service
看到运行状态已经变为running即可,到此Docker的安装已经结束
五、Docker中常用的命令
- 查看docker版本
docker version
- 查看docker信息
docker info
- 重启docker
sudo systemctl restart docker
- 通过docker镜像运行一个新容器(以MySQL举例)
docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/data:/var/lib/mysql \
-v /usr/local/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
####这里往下是解释,不需要粘贴到linux上#############
--name 指定容器名字
-v 将对应文件挂载到linux主机上(主机文件地址:容器映射地址)
-e 初始化密码
-p 容器端口映射到主机的端口(把容器的3306映射到linux中3306,这样windows上就可以通过Navicat访问这个数据库)
-d 后台运行
- 查看docker容器日志
docker logs <容器名orID>
- 查看docker容器
1、docker ps ---- 查看当前运行的容器
2、docker ps -a ---- 查看全部容器
- 进入docker容器
docker exec -it <容器名orID> bash
- 启动docker容器
docker start
- 关闭docker容器
docker stop
- 重启docker容器
docker restart
- 删除docker容器
docker rm <容器id>
- 删除docker镜像
docker rmi <镜像id>
- 将docker容器保存为 tar 包
1、docker commit <容器id> <镜像名>:<tag> ---- 将容器保存成镜像
2、docker save -o <tar包名>.tar <镜像名>:<tag> ---- 将镜像保存为.tar文件,默认保存在当前目录
3、docker images ---- 查看docker镜像
- 从 tar 包导入docker镜像
1、docker load -i <tar包名>.tar ---- 从 tar 包导入镜像
2、docker run -itd -p <本地端口>:<容器端口> <镜像名>:<tag> ---- 通过镜像起容器
六、使用Docker安装MySQL
1、拉取MySql镜像(如果已经导入了MySQL镜像,省略该步骤)
sudo docker pull mysql:5.7
sudo docker images
2、创建MySQL配置文件
在conf文件夹中加入my.ini文件
my.ini配置文件如下:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
port=3306
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
lower_case_table_names=1
skip-name-resolve
3、docker启动MySQL
sudo docker run -p 3306:3306 --name mysql \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
输入docker ps - a查看mysql运行情况
4、使用Navicat连接
到此docker中安装mysql完成
七、使用Docker安装Redis
1、拉取Redis镜像(如果已经导入了Redis镜像,省略该步骤)
sudo docker pull redis
sudo docker images
2、创建Redis配置文件目录
在conf中添加redis.config配置文件
# redis.config服务器配置
# 绑定IP地址
#解除本地限制 注释bind 127.0.0.1
#bind 127.0.0.1
# 服务器端口号
port 6379
#配置密码,不要可以删掉
requirepass 123456
#这个配置不要会和docker -d 命令 冲突
# 服务器运行模式,Redis以守护进程方式运行,默认为no,改为yes意为以守护进程方式启动,可后台运行,除非kill进程,改为yes会使配置文件方式启动redis失败,如果后面redis启动失败,就将这个注释掉
daemonize no
#当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定(自定义)
#pidfile /data/dockerData/redis/run/redis6379.pid
#默认为no,redis持久化,可以改为yes
appendonly yes
#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300
#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000
# 按需求调整 Redis 线程数
tcp-backlog 511
# 设置数据库数量,这里设置为16个数据库
databases 16
# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128
# 是否记录系统日志,默认为yes
syslog-enabled yes
#指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
# 日志输出文件,默认为stdout,也可以指定文件路径
logfile stdout
# 日志文件
#logfile /usr/local/redis/redis-server.log
# 系统内存调优参数
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
3、启动redis容器
docker run -p 6379:6379 --name redis \
-v /usr/local/redis/data:/var/lib/redis \
-v /usr/local/redis/logs:/logs \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.config \
-d redis redis-server /etc/redis/redis.config
4、查看redis容器启动情况
docker ps -a
5、使用Windows的Redis Desktop来连接Redis
到此docker中安装Redis结束。
八、使用Docker安装Nginx
1、拉取Nginx镜像(如果已经导入了Nginx镜像,省略该步骤)
docker pull nginx
sudo docker images
2、创建Nginx配置文件目录
- html中放的是被Nginx代理的项目文件
- logs中放的是Nginx日志文件
- conf中放的是Nginx配置文件
在conf中添加nginx.config配置文件
3、启动Nginx容器
docker run -d --name nginx -p 80:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d/ -v /usr/local/nginx/logs:/var/log/nginx -v /usr/local/nginx/html:/usr/local/nginx/html -e TZ=Asia/Shanghai --privileged=true nginx
-d:表示后台启动nginx
--name:容器名
-p 80:80 :将容器的80端口映射至宿主机的80端口
-v /usr/local/nginx/conf/nginx.confg:/etc/nginx/nginx.conf是将宿主机/usr/local/nginx/conf/nginx.confg与容器/etc/nginx/nginx.conf关联
4、浏览器访问ip:端口
到此Nginx安装结束。
九、使用Docker搭建Node.js项目容器
1、准备一份Dockerfile文件
# 使用Node.js 16.14.0官方镜像作为基础镜像
FROM node:16.14.0
# 设置工作目录(项目在服务器中的路径)
WORKDIR /usr/local/Web/test/
# 将应用程序文件复制到容器中(容器中的路径)
COPY . /usr/local/Web/test/
# 安装应用依赖
RUN npm install
# 暴露应用程序使用的端口
EXPOSE 8080
# 启动应用程序
CMD ["node", "app.js"]
2、将Dockerfile文件放入项目的根目录下面
3、进入到项目根路径下,构建镜像
cd /usr/local/Web/test/
docker build -t test:v1.0 .
docker images
4、启动Node.js容器
docker run --name test -d -v /usr/local/Web/test/:/usr/local/Web/test/ -p 8080:8080 test:v1.0
5、防火墙开放端口
6、浏览器访问项目
到此Node.js项目容器搭建结束。
结束语
本文参考资料
- https://blog.csdn.net/qq_52423918/article/details/128676085?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-128676085-blog-123379229.235v38pc_relevant_sort_base2&spm=1001.2101.3001.4242.2&utm_relevant_index=4
- https://zhuanlan.zhihu.com/p/54147784
- https://mp.weixin.qq.com/s?__biz=Mzg2OTcyMDc4NA==&mid=2247484672&idx=1&sn=556ab3ffea709fa1399c6ead0e1affd4&chksm=ce99f2bff9ee7ba90eda79e5edab77e41efbf2dc4b4d71a011169491e6e6784c0ac816ce8a31#rd
- https://zhuanlan.zhihu.com/p/54147784