Docker快速Mysql,Nginx等搭建测试环境的常用命令

Docker快速Mysql,Nginx等搭建测试环境的常用命令

平时用Kubesphere用得比较多,Docker命令早已生疏,今天本是大年三十,该是吃好的,耍好的。可是之前给朋友搭建的测试服务器到期了,续费又太贵,这就不得不把之前的搭建的测试环境换个地方了,那就再来温习一下Docker记录一下所用到的命令,免得以后又得去一个个熟悉。

我这里的服务器环境是Centos 7.6,不同的操作系统,命令会有些差异。

安装Docker

安装依赖环境

1
yum -y install yum-utils device-mapper-persistent-data lvm2
设置镜像源
1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在更新yum源或者配置yum源之后,我们需要执行yum makecache fast来,将软件包信息提前在本地缓存一份,用来提高搜索安装软件的速度,默认情况下,yum 会把下载的软件包缓存起来,可以使用yum clean all指令清除缓存

安装Docker

Docker分CE(社区版) 和EE(企业版)两个版本,我们当然是装社区版了。

1
yum install docker-ce docker-ce-cli containerd.io

Docker的配置文件daemon.json中的常用配置:

1
2
3
4
5
{
"data-root": "", //Docker 存储所有运行时数据的根目录,如:镜像、容器、卷和网络,默认情况下为 /var/lib/docker
"registry-mirrors":[""], //Docker 镜像拉取时使用的镜像仓库加速地址
"insecure-registries":[""] //指定被认为不安全的注册表列表,允许Docker守护进程在没有TLS或使用自签名证书的情况下从这些注册表中提取映像。此处可配置为我们自己的Docker 私有镜像地址
}

例如:
{
“data-root”: “/home/docker/data”, //Docker 存储所有运行时数据的根目录,如:镜像、容器、卷和网络,默认情况下为 /var/lib/docker
“registry-mirrors”:[“https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"], //Docker 镜像拉取时使用的镜像仓库加速地址
“insecure-registries”:[“192.168.0.1:5000”] //指定被认为不安全的注册表列表,允许Docker守护进程在没有TLS或使用自签名证书的情况下从这些注册表中提取映像。此处可配置为我们自己的Docker 私有镜像地址
}

daemon.json默认在/etc/docker/daemon.json中,我们在修改后,需要刷新daemon.json文件

1
systemctl daemon-reload
设置开机自动启动

systemctl enable docker

启动Docker服务

systemctl start docker //启动Docker服务

systemctl restart docker //重启

Docker常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
## 是否安装docker
docker version
## 重启docker
service docker restart
## 停止docker
service docker stop
## 检查修改结果
docker info
## 卸载docker
sudo 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 images
## 查看当前运行的容器信息
docker ps
## 启动具体容器
docker start + id
## 进入容器
docker exec -it +容器ID /bin/bash
## 全部停止
docker stop $(docker ps -a -q)
## 进入java容器
docker exec -it java bash

## Docker帮助docker
docker --help
## 查看Docker版本
docker --version
## 搜索镜像文件
docker search <image>
## 拉取镜像文件,
docker search mysql docker pull <image>
## 查看已经拉取下来的所以镜像文件
docker pull mysql docker images #删除指定镜像文件#发布指定镜像文件
docker rmi <image>
## 查看正在运行的所有镜像
docker run --name <name> -p 80:8080 -d <image>
docker ps
## 查看所有发布的镜像
docker ps -a
## 删除执行已发布的镜像
docker rm <image>

## 构建镜像
docker build -t myapp .

## 查看容器日志
docker logs 容器ID

部署常用应用

搭建MySQL数据库
1
2
3
4
5
6

docker run -p 33306:3306 --name mysql --restart=always --privileged=true \
-v /home/mysql/log:/var/log/mysql \
-v /home/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=数据库密码 -d mysql:latest --lower-case-table-names=1

-p 中33306:3306,前面为映射到宿主机上的端口,后面为容器中的端口, -v /home/mysql/log:/var/log/mysql,前面为宿主机上的目录,后面为容器中的目录

搭建Redis
1
docker run -itd --name redis -p 16379:6379 redis --requirepass "Redis密码"
搭建Nginx
1
2
3
4
5
6
docker run \
-p 80:80 \
--name nginx \
-v /home/project/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/project/nginx/html:/usr/share/nginx/html \
-d nginx:latest
构建Java应用镜像并运行

这里简单的构建一个Java应用镜像,因为是测试环境,就不将应用复制到镜像中,直接映射应用路径即可

Dockerfile

1
2
3
4
5
6
7
8
9
FROM openjdk:8

#COPY pms-admin.jar /pms/pms-admin.jar

WORKDIR /pms

EXPOSE 8080

ENTRYPOINT java -server -Xms3g -Xmx4g -jar *.jar

执行镜像构建命令

1
docker build -t pms-admin .

启动容器

1
2
docker run -p 8080:8080 --name pms-admin -v /root/pms/project/:/pms -v /root/pms/project/logs:/home/pms/logs -v /root/pms/project/uploadPath/:/root/pms/uploadPath -d pms-admin

基于Docker构建一个测试环境,效率非常高,要是以前,要搭建一个像若依这样的测试环境,安装MySQL,Nginx,Redis还有Java运行环境,慢的话,也要小半天吧,就这几行代码,复制可用,分分钟就搞好一个环境了。

今天成都的天气真是好,该出去晒晒太阳了。

Docker快速Mysql,Nginx等搭建测试环境的常用命令

https://blogs.52fx.biz/posts/369815971.html

作者

eyiadmin

发布于

2024-02-09

更新于

2024-05-31

许可协议

评论