服务器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 开启持久化

posted @ 2022-02-08 16:31  YuChun_9293  阅读(304)  评论(0编辑  收藏  举报