centos基础环境搭建

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

安装docker

  • 安装
yum update -y
yum install docker -y
  • 修改国内镜像源
vim  /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
  • 启动:service start docker

  • 停止:service docker stop

  • 重启:service docker restart

  • 设置docker开机自动启动: systemctl enable docker.service

  • 常用命令

  • 测试能否正常运行:docker run hello-world

  • 查看所有镜像:docker iamges

  • 运行镜像:docker run -d -p x:xx --name xxx...

  • 删除镜像:docker rmi xxx

  • 查看所有容器:docker ps -a

  • 查看正在运行的容器:docker ps

  • 运行容器:docker start xxx

  • 停止容器:docker stop xxx

  • 删除容器:docker rm xxx

  • 进入容器内部:docker exec -it xxx /bin/bash

  • 退出容器内部:CTRL+P+Q

  • 查看容器日志:docker logs xxx

安装mysql(5.7)

  • 运行示例:
docker run -p 3306:3306 --name mysql -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Yangrj1993 -d docker.io/mysql  --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  • 解释(https://hub.docker.com/_/mysql):
-p 3306:3306     把容器的3306映射到宿主机的3306
--name mysql 容器名称
-v /home/tools/mysql/my.cnf:/etc/mysql/my.cnf    挂载配置文件,/home/tools/mysql/my.cnf -d docker.io/mysql  在后台运行 指定镜像
-v /home/tools/mysql/data:/var/lib/mysql     挂载mysql数据文件
-e MYSQL_ROOT_PASSWORD=Yangrj1993      设置root密码
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci  配置默认编码
  • 设置mysql连接睡眠时间为1000秒(任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止):set global wait_timeout=1000
  • 解决莫名其妙报错:
[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column’information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

查看:select @@global.sql_mode;
修改sql_mode,去掉【ONLY_FULL_GROUP_BY】:set global sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

安装redis

  • 下载redis.config:wget http://download.redis.io/redis-stable/redis.conf
  • 修改redis.config:
logfile "redis.log"
port 6379
dir /data
appendonly yes
appendfilename appendonly.aof
requirepass 1234
  • 拉取最新redis镜像:docker pull redis:latest
  • 运行:
docker run -p 6379:6379 --name redis -v /home/docker/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /home/docker/redis/redis_data/:/data  -d docker.io/redis redis-server  /usr/local/etc/redis/redis.conf
  • 解释:
-p 6379:6379    将容器的6379端口映射到主机的6379端口
-v /home/docker/redis/redis_data/:/data     将主机中目/home/docker/redis/redis_data挂载到容器的/data
--name redis    给出容器名称
-d   在后台运行 指定镜像
docker.io/redis      镜像名称
redis-server  /usr/local/etc/redis/redis.conf: redis的启动命令,指定配置文件 

Dockerfile

  • FROM
FROM <image>
必须是第一个指令,基础源镜像
  • MAINTAINER
MAINTAINER <name> <email>
描述镜像的创建者,名称和邮箱
  • RUN
RUN "command" "param1" "param2"
执行完成之后会成为一个新的镜像(分层构建,一句RUN就是一层,也相当于一个版本)
可以通过&符号连接多个RUN语句
  • CMD
CMD command param1 param2
在D整个ockerfile中只能出现一次,有多个,只有最后一个会有效
  • EXPOSE
EXPOSE <port> [<port>...]
告诉Docker服务器容器对外映射的容器端口号,在docker run -p的时候生效
  • ENV
EVN <key> <value> 只能设置一个
EVN <key>=<value>允许一次设置多个
设置容器的环境变量,可以让其后面的RUN命令使用,容器运行的时候这个变量也会保留
  • ADD
ADD <src> <dest>
复制本机文件或目录或远程文件,添加到指定的容器目录,支持GO的正则模糊匹配。路径是绝对路径,不存在会自动创建。如果源是一个目录,只会复制目录下的内容,目录本身不会复制。
ADD命令会将复制的压缩文件夹【自动解压】,这也是与COPY命令最大的不同。
  • COPY
COPY <src> <dest>
COPY除了不能自动解压,也不能复制网络文件。其它功能和ADD相同
  • ENTRYPOINT
ENTRYPOINT "command" "param1" "param2"
和CMD命令一样,唯一的区别是不能被docker run命令的执行命令覆盖,如果要覆盖需要带上选项--entrypoint,如果有多个选项,只有最后一个会生效
  • VOLUME
VOLUME ["path"]
在主机上创建一个挂载,挂载到容器的指定路径
  • USER
USER daemon
指定运行容器时的用户名或UID,后续的RUN、CMD、ENTRYPOINT也会使用指定的用户运行命令
  • WORKDIR
WORKDIR path
为RUN、CMD、ENTRYPOINT指令配置工作目录。可以使用多个WORKDIR指令,后续参数如果是相对路径,则会基于之前的命令指定的路径。如:WORKDIR  /home  WORKDIR test 。最终的路径就是/home/test
  • ONBUILD
ONBUILD [INSTRUCTION]
配置当前所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。意思就是,这个镜像创建后,如果其它镜像以这个镜像为基础,会先执行这个镜像的ONBUILD命令
  • Dockerfile示例
FROM java:8
VOLUME /home/docker/tmp
ADD weekly-1.0.0.jar /app.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar","app.jar"]

# 构建:docker build -t week-1 .
# 启动:docker run -p 8888:8888 --name week -d d23bdf5b1b1b

CentOS 运维避坑实战

CentOS7.9 安装 Python3.8.16 后 yum 报错,快速修复方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值