一:安装docker

1 如果之前安装过旧版本的Docker,可以使用下面命令卸载

# 1 如果之前安装过旧版本的Docker,可以使用下面命令卸载 
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

# 2.安装docker 首先需要大家虚拟机联网,安装yum工具
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

# 3、设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
# 
yum makecache fast

# 4、安装docker ,docker-ce为社区免费版本。稍等片刻,docker即可安装成功
yum install -y docker-ce

# 5、启动docker(Docker应用需要用到各种端口,逐一去修改防火墙设置。非常麻烦,因此建议大家直接关闭防火墙!)启动docker前,一定要关闭防火墙后!!
systemctl stop firewalld # 关闭
systemctl disable firewalld # 禁止开机启动防火墙
systemctl status firewalld #查看是否关闭防火墙

# 通过命令启动docker:
systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务

二:安装Nginx

# 1、拉取镜像
docker pull nginx

# 2、宿主机创建挂载目录(本次在/home)
# ssl放域名对应证书
# config放nginx配置文件
# logs放nginx日志
mkdir nginx && cd $_ && mkdir -p {ssl,config,logs}

# 3、先启动一个nginx容器用于cp对应的文件夹类型,用于后期挂载使用
docker run --name nginx -p 80:80 -d nginx

# 4、复制配置文件到宿主机器
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/config/
docker cp nginx:/etc/nginx/conf.d /home/nginx
docker cp nginx:/usr/share/nginx/html /home/nginx

# 5、创建前端工程挂载目录(该目录的好处在于,上传新的前端项目后,不用重新启动nginx,只需要修改nginx.conf配置)
mkdir -p /home/nginx/pre_server 

# 6、此时需要停止并删除已启动容器
docker stop nginx
docker rm nginx

# 7、挂载启动nginx容器
docker run --name nginx -p 443:443 -p 80:80 \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/config/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/ssl:/etc/nginx/ssl \
-v /home/nginx/pre_server:/home/pre_server \
--privileged=true -d --restart=always nginx 

# 8、验证:容器是已挂载的方式进行启动的,修改/home/nginx/html/下的index.html文件,浏览器访问。

# 9、验证pre_home目录
# 我们将html下的index.html拷贝到/home/nginx/pre_server下,并且配置nginx.conf文件,再重启nginx,
# 也可以自己上传,自定义的前端工程到/home/nginx/pre_server下
cp /home/nginx/html/index.html /home/nginx/pre_server
# 修改 default.conf 就可以了


# 9、修改配置nginx配置文件后加载
docker exec 容器id nginx -t
docker exec 容器id nginx -s reload

三:安装 RabbitMq

1.安装,并运行rabbitmq
注意:
a、默认rabbitmq镜像是不带web端管理插件的,所以指定了镜像tag为rabbitmq-management,表示下载包含web管理插件版本镜像。
b、访问rabbitmq时出现无法访问,这是因为没有开启插件。进入到容器内部执行rabbitmq-plugins enable rabbitmq_management插件激活。

# 查找镜像
docker search rabbitMq
# 拉取镜像
docker pull rabbitmq:management
# 查询本地镜像
docker images
# 运行镜像
docker run --name myrabbitmq -d -p 15672:15672 -p 5672:5672 镜像id
# 检验
docker ps
# 进入镜像
docker exec -it 498dae209e8c  /bin/bash
# 开启镜像web管理插件
rabbitmq-plugins enable rabbitmq_management

注意(可选):如果经过上面还是无法远程访问web(排除:没有开启管理UI界面、防火墙的问题),依次在终端中执行一下命令(整了半天是网卡问题)。

#停止docker
systemctl stop docker
#安装一个工具包
yum install -y bridge:utils
#docker0
ip link set dev docker0 down
#删除docker0网桥
brctl delbr docker0
#增加docker0 网桥
brctl addbr docker0
#增加网卡(docker0网卡的IP设置为172.16.10.1)
ip addr add 172.16.10.1/24 dev docker0
#启用网卡
ip link set dev docker0 up
#重启docker服务
systemctl restart docker

2.访问rabbitMq(默认用户名和密码都是guest)
默认的guest 账户有访问限制,默认只能通过本地网络(如 localhost) 访问,远程网络访问受限,所以在使用时我们一般另外添加用户,例如我们添加一个root用户:

# 进入容器
docker exec -it 容器id /bin/bash
# 添加用户,用户名为root,密码为123456
rabbitmqctl add_user root 123456 
# 赋予root用户所有权限
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
# 赋予root用户administrator角色
rabbitmqctl set_user_tags root administrator
# 查看所有用户即可看到root用户已经添加成功
rabbitmqctl list_users
# 从容器内部退出
exit

四:阿里云私有镜像仓库

开通容器镜像服务
在这里插入图片描述
新建命名空间和镜像仓库后的信息。
在这里插入图片描述
上传镜像

[root@localhost nginx-demo]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
nginx-base2                       v1                  db56bbb84f51        58 minutes ago      542 MB
[root@localhost nginx-demo]#  docker login --username=dt_2967586378 registry.cn-hangzhou.aliyuncs.com
Password:
Login Succeeded
[root@localhost nginx-demo]# docker tag db56bbb84f51  registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker:v1
[root@localhost nginx-demo]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
nginx-base2                                             v1                  db56bbb84f51        About an hour ago   542 MB
registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker   v1                  db56bbb84f51        About an hour ago   542 MB
[root@localhost nginx-demo]# docker push registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker:v1
The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker]
d878ceafa474: Pushed
fb829d911e11: Pushed
174f56854903: Pushed
v1: digest: sha256:23ff2db9cb253728889b4fe5ff8ec567896b1ba85c77d5db58f31874b4214ec6 size: 953
[root@localhost nginx-demo]#

这时阿里云上就有该镜像了。
在这里插入图片描述
拉取镜像

[root@localhost nginx-demo]# docker login --username=dt_2967586378 registry.cn-hangzhou.aliyuncs.com
Password:
Login Succeeded
[root@localhost nginx-demo]# docker pull registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker:v1
Trying to pull repository registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker ...
v1: Pulling from registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker
Digest: sha256:23ff2db9cb253728889b4fe5ff8ec567896b1ba85c77d5db58f31874b4214ec6
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker:v1
[root@localhost nginx-demo]# docker images
REPOSITORY                                              TAG                 IMAGE ID            CREATED             SIZE
registry.cn-hangzhou.aliyuncs.com/kingsong/jws_docker   v1                  db56bbb84f51        About an hour ago   542 MB      
[root@localhost nginx-demo]#

五:docker安装mysql版本:5.7.38(注意:不要用5.7版本,会报错)

1,docker 安装 mysql

1.拉取镜像
docker pull mysql:5.7.38

2.运行镜像
docker run -p 3306:3306 --name mysql -v /home/database/mysql/conf:/etc/mysql/conf.d -v  /home/database/mysql/logs:/var/log/mysql -v  /home/database/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.38 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

3.复制mysql配置文件到主机的home/database/mysql/conf目录下
docker cp mysql:/etc/my.cnf /home/database/mysql/conf

4.停止容器、删除容器、重新启动容器
docker stop mysql
docker rm mysql
docker run -p 3306:3306 --name mysql -v /home/database/mysql/conf/my.cnf:/etc/my.cnf -v /home/database/mysql/conf:/etc/mysql/conf.d -v  /home/database/mysql/logs:/var/log/mysql -v  /home/database/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.38 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
命令解释说明:
-p 3306:3306:将主机的3306端口映射到docker容器的3306端口。
--name mysql:运行服务名字
-v /home/database/mysql/conf/my.cnf:/etc/my.cnf 配置文件挂载
-v /home/database/mysql/conf:/etc/mysql/conf.d :文件挂载
-v /home/database/mysql/logs:/var/log/mysql:文件挂载
-v /home/database/mysql/data:/var/lib/mysql :文件挂载
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码。
-d mysql:5.7.38 : 后台程序运行mysql5.7.38
–character-set-server=utf8mb4 :设置字符集
–collation-server=utf8mb4_unicode_ci:设置校对集
------ 安装完毕 -----navicat可以访问了------

2,查看binlog、开启binlog

# navicat上可以查看binlog、开启binlog
show variables like 'log_bin';

在这里插入图片描述

修改路径 :/home/database/mysql/conf/ 下的 my.cnf 文件。
[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

在这里插入图片描述

docker重启 mysql:docker restart mysql。

3,.删除数据库
删除镜像后,重新安装,由于挂载了数据在主机中,重新安装后,原来的账号密码、以及数据还都在。
如果需要安装全新的mysql,则先删除文件夹:/home/database/mysql。在重新按上面的安装一遍即可。
4,建立用户
root/root 这个默认账户是无法创建数据库的。这里我们新建一个账户

docker exec -it mysql bash
mysql> mysql -u root -p root
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
mysql> grant all privileges on *.* to root@'%';
mysql> flush privileges;

六:安装oracle_11g

参考的博客地址

1、拉取Oracle镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2、运行镜像
docker run -p 1521:1521 \
--restart=always \
--name oracle_11g \
-v /opt/oracle_data:/home/oracle/app/oracle/oradata/mydata \
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3、进入容器设置用户信息
docker exec -it oracle_11g bash

4、切换root用户,密码:helowin

5、配置oracle环境变量
vi /etc/profile
在末尾添加
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 
export ORACLE_SID=helowin 
export PATH=$ORACLE_HOME/bin:$PATH
刷新配置
source /etc/profile

6、创建建立sqlplus软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

7、切换到oracle用户
登录sqlplus
sqlplus / as sysdba  
修改sys和system用户密码
alter user system identified by 123456;
alter user sys identified by 123456;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

修改tnsnames.ora,添加连接串

ORCL_DOCKER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.71.148)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)
    )
  )

可以用远程工具测试连接了

七:安装redis

# 拉取镜像
docker pull redis:5.0.14
# 创建 挂载redis的配置文件
mkdir -p /home/redis/myredis/
# 在/home/redis/myredis/目录下创建myredis.conf 配置文件(内如在下方)
vim myredis.conf
# 创建 挂载redis 的持久化文件(为了数据的持久化)
mkdir -p /home/redis/myredis/data
# 启动redis 容器
docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /home/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /home/redis/myredis/data:/data -d redis:5.0.14 redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass root

# 说明:
# –restart=always 总是开机启动
# –log是日志方面的
# -p 6379:6379 将6379端口挂载出去
# –name 给这个容器取一个名字
# -v 数据卷挂载    
# /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。
# /home/redis/myredis/data:/data 这个同上
# -d redis 表示后台启动redis
# redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf
# –appendonly yes 开启redis 持久化
# –requirepass root 设置密码   

#查看此容器30分钟之内的日志情况
docker logs --since 30m myredis

七:安装FastDFS

# 拉取fastdfs镜像
docker pull delron/fastdfs 
# 构建tracker容器
docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs tracker
# 构建storage容器(这里是云服务的内网ip)
docker run -dti  --network=host --name storage -e TRACKER_SERVER=172.26.140.59:22122 -v /var/fdfs/storage:/var/fdfs  -v /etc/localtime:/etc/localtime  delron/fastdfs storage
------------------------------------------
# storage.conf(按需修改)
docker exec -it storage bash  
cd /etc/fdfs/   
vi storage.conf 
# 修改storage中的nginx(按需修改),同样是在storage容器里面操作
cd /usr/local/nginx/conf
vi nginx.conf
# 修改完重启容器,没有修改就不需要重启
docker restart storage
docker stop storage
docker start storage
------------------------------------------
# 测试
docker exec -it storage bash
cd /var/fdfs
echo hello 'fastdfs-demo'>a.txt
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.txt
# 上传成功会返回文件地址,打开浏览器访问地址 http://ip:8888/group1/M00/00/00/wKi9jGGNKjmAK_BpAAAAH93k9Eg665.txt
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐