本文主要给大家介绍如何使用 docker 搭建常用的服务环境,
包括mysql,reedis,nginx,jenkins 等常用的环境,下面直接进入主题。
1、MySQL 部署
①搜索 MySQL 镜像
docker search mysql
②拉取 MySQL 镜像
docker pull mysql:5.7
③创建容器,设置端口映射,目录映射
●在宿主机中创建一个 MySQL 目录,用来存储数据库信息
mkdir ~/mysql
cd mysql:5.7
●启动容器
docker run -id \
-p 3306:3306 \
--name db \
-v /mysql/conf:/etc/mysql/conf.d \
-v /mysql/logs:/logs \
-v /mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
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 的数据文件目录挂载到容器
如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a
④数据库操作
●进入容器操作数据库
# 进入容器
docker exec -it c_mysql /bin/bash
# 进入mysql
mysql -uroot -p123456
# 创建一个远程连接账号
> use mysql
> grant all privileges on * to 'test'@'%' identified by 'mysql';
# 刷新权限
> flush privileges
●客户端远程连接数据库
# 数据库host为:宿主机的IP
# 数据库端口为:3306
# 数据库账号密码:自己上面设置的账号密码
2、nginx 部署
①搜索镜像
docker search nginx
②拉取镜像
docker pull nginx
③创建容器,映射端口
●本地创建 nginx 数据存储文件
# 创建nginx目录
mkdir /nginx
cd /nginx
mkdir conf
cd conf
# 编辑nginx配置文件
vi nginx.conf
●nginx 配置文件内容
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
●运行容器
docker run -id \
--name nginx-test \
-p 8000:80 \
-v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /nginx/logs:/var/log/nginx \
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 的密码
# 进入容器
docker exec -it jenkins /bin/bash
# 容器内执行,获取jenkins初始密码
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
③拉取私有仓库的镜像
拉取私有仓库的镜像,使用如下命令:
docker pull localhost:5000/镜像名:版本号
例如
docker pull localhost:5000/nginx:latest