• 不外传秘诀| docker 快速搭建常用的服务环境


    本文主要给大家介绍如何使用 docker 搭建常用的服务环境,

    包括mysql,reedis,nginx,jenkins 等常用的环境,下面直接进入主题。

    1、MySQL 部署

    ①搜索 MySQL 镜像

    docker search mysql

    ②拉取 MySQL 镜像

    docker pull mysql:5.7

    ③创建容器,设置端口映射,目录映射

    ●在宿主机中创建一个 MySQL 目录,用来存储数据库信息

    1. mkdir ~/mysql

    2. cd mysql:5.7

     ●启动容器

    1. docker run -id \
    2. -p 3306:3306 \
    3. --name db \
    4. -v /mysql/conf:/etc/mysql/conf.d \
    5. -v /mysql/logs:/logs \
    6. -v /mysql/data:/var/lib/mysql \
    7. -e MYSQL_ROOT_PASSWORD=123456 \
    8. mysql:5.7

    ○ -p 3307:3306 :宿主机的 3307 端口映射到容器的 3306 端口

    ○ --name c_mysql: 指定容器名称

    ○ -v /mysql/conf:/etc/mysql/conf.d : 挂载 MySQL 配置文件的路径到容器

    ○ -v /mysql/logs:/logs :将 MySQL 日志文件的路径挂载到容器

    ○ -v /mysql/data:/var/lib/mysql:将主机 MySQL 的数据文件目录挂载到容器

    ④数据库操作

    ●进入容器操作数据库

    1. # 进入容器
    2. docker exec -it c_mysql /bin/bash
    3. # 进入mysql
    4. mysql -uroot -p123456
    5. # 创建一个远程连接账号
    6. > use mysql
    7. > grant all privileges on * to 'test'@'%' identified by 'mysql';
    8. # 刷新权限
    9. > flush privileges

    ●客户端远程连接数据库

    1. # 数据库host为:宿主机的IP
    2. # 数据库端口为:3306
    3. # 数据库账号密码:自己上面设置的账号密码

    2、nginx 部署

    搜索镜像

    docker search nginx

     ②拉取镜像

    docker pull nginx

    ③创建容器,映射端口

    ●本地创建 nginx 数据存储文件

    1. # 创建nginx目录
    2. mkdir /nginx
    3. cd /nginx
    4. mkdir conf
    5. cd conf
    6. # 编辑nginx配置文件
    7. vi nginx.conf

    ●nginx 配置文件内容

    1. user www-data;
    2. worker_processes auto;
    3. pid /run/nginx.pid;
    4. include /etc/nginx/modules-enabled/*.conf;
    5. events {
    6. worker_connections 768;
    7. }
    8. http {
    9. sendfile on;
    10. tcp_nopush on;
    11. tcp_nodelay on;
    12. keepalive_timeout 65;
    13. types_hash_max_size 2048;
    14. include /etc/nginx/mime.types;
    15. default_type application/octet-stream;
    16. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    17. ssl_prefer_server_ciphers on;
    18. access_log /var/log/nginx/access.log;
    19. error_log /var/log/nginx/error.log;
    20. gzip on;
    21. include /etc/nginx/conf.d/*.conf;
    22. include /etc/nginx/sites-enabled/*;
    23. }

    ●运行容器 

    1. docker run -id \
    2. --name nginx-test \
    3. -p 8000:80 \
    4. -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
    5. -v /nginx/logs:/var/log/nginx \
    6. nginx

    ●验证是否安装成功

    通过访问 http://ip:8000,验证是否可以访问 nginx 服务。

    3、Redis 部署

    搜索镜像

    docker search redis

    ②拉取镜像

    docker pull redis

    ③运行容器

    docker run -id --name redis-test -p 6379:6379 redis

    ●设置密码

    docker run -id --name redis-test -p 6379:6379 redis --requirepass 123456

    到此为止 Redis 就安装成功啦。

    4、jenkins 部署

    下载 jenkins 镜像

    docker pull jenkins/jenkins 

    ②启动容器,并映射出端口和挂在目录

    docker run --name jenkins -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk11

    ③进入容器获取 jenkins 的密码

    1. # 进入容器
    2. docker exec -it jenkins /bin/bash
    3. # 容器内执行,获取jenkins初始密码
    4. cat /var/jenkins_home/secrets/initialAdminPassword

    访问 jenkins 服务 http://ip:8080,输入上面设置的密码,然后按页面提示流程进行初始化操作,设置账号密码,选择安装插件,即可进入到 jenkins 的主页面啦。

    5、私有仓库的搭建

    如果你想搭建一个自己的私有 Docker 仓库,也很简单,只需要几个步骤即可实现,

    ①搭建仓库

    Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露 5000 端口,就可以使用了。

    docker pull registry:2
    docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

    Registry 服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry 目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry 目录了。

    ②推送镜像到私有仓库

    要通过 docker tag 将该镜像标志为要推送到私有仓库:

    docker tag nginx:latest localhost:5000/nginx:latest

    通过 docker push 命令将 nginx 镜像 push 到私有仓库中:

    docker push localhost:5000/nginx:latest

    ③拉取私有仓库的镜像

    拉取私有仓库的镜像,使用如下命令:

    1. docker pull localhost:5000/镜像名:版本号
    2. 例如
    3. docker pull localhost:5000/nginx:latest

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    在这里插入图片描述

    这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

  • 相关阅读:
    浅谈如何学习微信小程序
    【博客459】BGP(边界网关协议)-----报文格式
    2022 极术通讯-阿里发布汽车云:自动驾驶能干十年,智能制造能干一辈子
    华为HCIP认证用处大吗?
    Java类变量和类方法(static)
    Java之序列化的详细解析
    一文快速创建前端react项目
    还是分不清非阻塞赋值与阻塞赋值吗?
    IDEA快捷键和模板
    C语言 &=(按位与后赋值)^=(按位异或后赋值) |=(按位或后赋值)
  • 原文地址:https://blog.csdn.net/YLF123456789000/article/details/133701522