服务器docker基础搭建
服务器搭建
为了便于管理docker容器挂载的卷,我统一存放在了/usr/docker
目录下
Docker
先更新yum
sudo yum install -y yum-utils
换阿里云镜像
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
下载docker
sudo yum install docker-ce docker-ce-cli containerd.io
配置镜像加速(这里是阿里云)
https://xxxxxxx.mirror.aliyuncs.com是自己的加速网址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
查看版本,安装完毕
dokcer version
RabbitMQ
拉取带有web管理页面版本的镜像image
docker pull rabbitmq:management
运行
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
命令说明
-d: 后台运行容器,并返回容器ID
--hostname my-rabbit:设置主机host名称
--name rabbit:为容器container指定名称
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
MySQL
Docker安装MySQL8.0 - 一步一年 - 博客园 (cnblogs.com)
docker run --restart=unless-stopped -d --name mysql -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.16
更改权限设置,连接navicat
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges
Java
linux安装java步骤 - 海岛拾贝 - 博客园 (cnblogs.com)
[root@VM-16-11-centos etc]# java -version
-bash: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/bin/java: Permission denied
如果权限被拒绝,增加权限
chmod +x /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/bin/java
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/bin/java 文件名
Nginx
暂有问题
docker run --name nginx -dit -p 80:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/html:/etc/nginx/html -v /usr/local/nginx/logs:/var/log/nginx nginx:latest
// 运行容器并挂载命令
docker run --name nginx //容器起名为nginx
-d //后台运行
-p 80:80 //把主机80端口映射到容器80端口
--restart=always
--privileged=true //防止挂载时权限不够
-v path/conf/nginx.conf:/etc/nginx/nginx.conf
-v path/html:/etc/nginx/html
-v path/logs:/var/log/nginx
//把文件挂载到主机目,主机文件目录:容器文件目录
nginx:latest //运行镜像的名称REPOSTITORY
Redis
拉取最新版镜像
docker pull redis
docker的redis默认没有配置文件,要自己挂载
redis.conf下载Redis configuration – Redis
修改配置文件
#注释掉下面这行代码表示开启外部访问
#bind 127.0.0.1
#保护模式,限制为本地访问,修改后解除保护模式
protected-mode yes
#使用守护线程的方式启动,docker启动redis一定要设置为no,不然会闪退
#简单讲一下原因大概就是docker是后台运行,redis是在docker上运行的,如果redis也是后台运行就会产生冲突
daemonize no
#设置Redis密码
requirepass 123123
#开启持久化
appendonly yes
docker run -d --privileged=true -p 6379:6379 --name redis -v /usr/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/docker/redis/data:/data redis:latest redis-server /etc/redis/redis.conf --appendonly yes
--privileged=true:容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录
-d 后台运行容器,也可以使用镜像id
redis:latest 运行的redis镜像
-v /usr/docker/redis/conf/redis.conf:/etc/redis/redis.conf:映射配置文件
-v /usr/docker/redis/data:/data:映射数据目录
redis-server /etc/redis/redis.conf:指定配置文件启动redis-server进程
--appendonly yes 开启持久化
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析