Docker使用——常用容器安装

Docker使用——常用容器安装

安装Docker

#卸载系统之前的docker 
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
                  
sudo yum install -y yum-utils

# 配置镜像
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker

docker -v
sudo docker images

# 配置镜像加速
# 阿里云文档地址:https://y1pukhwx.mirror.aliyuncs.com
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

安装MySQL

# root用户不需要写sudo
# !!!注意这里版本为5.7
docker pull mysql:5.7

# --name指定容器名字 -v目录挂载 -p指定端口映射 主机端口号:容器端口号  -e设置mysql参数 -d后台运行
sudo 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=111 \
-d mysql:5.7

# 进入已启动的容器
docker exec -it mysql bin/bash

# 进入mysql
mysql -uroot -p111
# 修改密码
#5.7以前
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('111');
#5.7以后
Update user SET authentication_string = PASSWORD('111') WHERE User = 'root';
#刷新权限
flush privileges;

# 退出进入的容器
exit;

因为有目录映射,所以我们可以直接在镜像外执行
vi /mydata/mysql/conf/my.conf 

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
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

docker restart mysql

安装Redis

# 查看可用版本
docker search redis

# 安装最新版本
docker pull redis
# 安装指定版本--这里是6.2.6
docker pull redis:6.2.6

# 在虚拟机中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

# !!!注意这里redis版本为6.2.6
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:6.2.6 redis-server /etc/redis/redis.conf

# 直接进去redis客户端。
docker exec -it redis redis-cli

# 配置redis aof持久化
vi /mydata/redis/conf/redis.conf
# 插入下面内容
appendonly yes

docker restart redis

# 设置redis在docker启动的时候启动
docker update redis --restart=always

给redis设置密码(需要进入客户端)

1、可以查看密码状态

config get requirepass

在这里插入图片描述

这里是没有密码

# 设置密码为root,并重启容器
config set requirepass root

在这里插入图片描述

再次进入容器,查看密码状态,此时提示需要密码

在这里插入图片描述

2、 永久设置密码

修改改配置文件redis.conf,添加并保存以下内容,并重启redis即可

requirepass root

在这里插入图片描述

安装MongoDB

# 查看可用版本
docker search mongo

# 安装最新版
docker pull mongo:latest

# 运行MongoDB
docker run -itd --name mongo -p 27017:27017 \
-v /mydata/mongodb/log:/var/log/mongo \
-v /mydata/mongodb/data:/data/db \
-v /mydata/mongodb/conf:/data/configdb \
-v /mydata/mongodb/backup:/data/backup \
-d mongo:latest --auth

# 进入容器
docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户
db.createUser({ user:'admin',pwd:'111',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '111')

# MongoDB导入文件夹数据
# Linux下
mongorestore -d flash-waimai 文件夹目录

# Windows下
mongorestore.exe -d db_name 文件夹目录

安装Nginx

# 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
# 安装Nginx -- 这里直接创建容器是因为当docker找不到镜像时,会自动下载镜像然后再安装
docker run -p80:80 --name nginx -d nginx:1.20

# 先在容器外部的mydata文件夹下给Nginx创建文件夹
mkdir -p /mydata/nginx/conf
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs

# 复制Nginx配置文件到mydata下的nginx/nginx目录下
cd /mydata/nginx/;
docker container cp nginx:/etc/nginx .

# 由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
mv /mydata/nginx/conf/nginx/* /mydata/nginx/conf/
rm -rf /mydata/nginx/conf/nginx

# 停止并移除nginx容器
docker stop nginx
docker rm nginx

# 重新创建Nginx
docker run -p 80:80 --name nginx \
 -v /mydata/nginx/html:/usr/share/nginx/html \
 -v /mydata/nginx/logs:/var/log/nginx \
 -v /mydata/nginx/conf/:/etc/nginx \
 -d nginx:1.20
 
 # 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html
 
 # 开机自启
 docker update nginx --restart=always
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值