使用 docker 快速搭建常用的服务环境

本贴最后更新于 997 天前,其中的信息可能已经物是人非

本文主要给大家介绍如何使用docker搭建常用的服务环境,包括mysql,reedis,nginx,jenkins等常用的环境,下面直接进入主题。

1、mysql部署

1、搜索mysql镜像
docker search mysql
2、拉取mysql镜像
docker pull mysql:5.7
3、创建容器,设置端口映射,目录映射
  • 在宿主机中创建一个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的数据文件目录挂载到容器
4、数据库操作
  • 进入容器操作数据库
# 进入容器
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部署

1、搜索镜像
docker search nginx
2、拉取镜像
docker pull nginx
3、创建容器,映射端口
  • 本地创建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部署

1、搜索镜像
docker search redis
2、拉取镜像
docker pull redis
3、运行容器
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部署

1、下载jenkins镜像

docker pull jenkins/jenkins 

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

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

3、进入容器获取jenkins的密码

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

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

5、私有仓库的搭建

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

1. 搭建仓库

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目录了。

2、推送镜像到私有仓库

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

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

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

docker push localhost:5000/nginx:latest
3、拉取私有仓库的镜像

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

docker pull localhost:5000/镜像名:版本号
例如
docker pull localhost:5000/nginx:latest
回帖
请输入回帖内容 ...