文章目录
Docker 安装 Mysql5.7
拉取官方Mysql镜像
# 拉取 mysql5.7
docker pull mysql:5.7
# 拉取最新版mysql镜像
docker pull mysql
创建一个Mysql容器
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
- -v:挂载文件,启动的时候把容器中的文件映射到虚拟机文件当中
- –name:容器名,此处命名为mysql
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,(3380)冒号前面是主机端口,(3306)冒号后面容器内部端口
- -d:源镜像名,此处为 mysql:5.7
修改配置文件
vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
重启
docker restart mysql
进入mysql容器
docker exec -it mysql /bin/bash
查看是否成功修改
cat /etc/mysql/my.cnf
进入Mysql客户端:
mysql -h127.0.0.1 -uroot -p123456 -P3306
设置随Docker自启动
docker update mysql --restart=always
Docker 安装 Redis
拉取官方Redis镜像
docker pull redis
创建一个Redis容器
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 -d --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
redis redis-server /etc/redis/redis.conf
启动Redis客户端
docker exec -it redis redis-cli
开启 aof 持久化
vi /mydata/redis/conf/redis.conf
# 添加如下内容
appendonly yes
requirepass 123456
重启Redis服务
docker restart redis
设置随Docker自启动
docker update redis --restart=always
Docker 安装 nginx
1、拉取镜像
去docker hub,找到nginx镜像。
# 下载最新版,版本:latest
docker pull nginx
# 镜像名:版本名(标签)
docker pull nginx:1.20.1
# 查看所有镜像
docker images
# 删除镜像,如果存在容器,需要先删除容器
docker rmi 镜像名:版本号/镜像id
2、启动容器
启动nginx应用容器,并映射88端口。
# -d:后台运行
# --restart=always: 开机自启
docker run --name=mynginx -d --restart=always -p 88:80 nginx
# 测试地址
http://192.168.56.31:88/
# 查看正在运行的容器
docker ps
# 查看所有
docker ps -a
# 删除停止的容器
docker rm 容器id/名字
# 强制删除正在运行中的容器
docker rm -f mynginx
# 停止容器
docker stop 容器id/名字
# 再次启动
docker start 容器id/名字
# 应用开机自启
docker update 容器id/名字 --restart=always
3、修改容器内容
修改默认的index.html 页面。
# 进入容器内部的系统,修改容器内容
docker exec -it 容器id/名字 /bin/bash
4、将修改后的容器制作成新镜像
将自己修改好的镜像提交。
# 将修改好的镜像制作成一个新的镜像
docker commit -a "yangqian" -m "首页变化" 2b5a8c4d1b76 yqnginx:v1.0
# 将镜像保存成压缩包
docker save -o abc.tar yqnginx:v1.0
# 别的机器加载这个镜像
docker load -i abc.tar
5、挂载数据
# 挂载数据到外部修改
docker run --name=mynginx \
-d --restart=always \
-p 88:80 -v /data/html:/usr/share/nginx/html:ro \
nginx
# 修改页面只需要去 主机的 /data/html
[root@centos7-node1 ~]# cd /data/html/
[root@centos7-node1 html]# echo "hello world" > index.html
6、扩展命令
# 查看日志,进行排错
docker logs 容器名/id
# 进入容器
docker exec -it 容器id /bin/bash
# docker 经常修改 nginx 配置文件,需要提前准备好 nginx.conf 配置文件
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx \
nginx
# 把容器指定位置的东西复制出来
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf
# 把外面的内容复制到容器里面
docker cp /data/conf/nginx.conf 5eff66eec7e1:/etc/nginx/nginx.conf
Docker 安装 Elasticsearch
Docker 安装 Kibana
Docker 运行 Java 应用
示例代码:https://gitee.com/leifengyang/java-demo.git
1、以前开发流程
- 编写一个SpringBoot应用。
- SpringBoot 打包成可执行 jar。
- 把 jar 包上传给服务器。
- 服务器需要安装 Java。
- 服务器运行应用 java -jar。
缺点: 需要安装 Java 运行环境,如果在别的机器运行这个应用的话,需要提前准备好 Java 环境。
2、现在
机器都安装Docker,任何应用都认为是一个镜像,所有机器都可以运行。
3、打包成镜像
(1)SpringBoot 打包成可执行 jar,并上传到服务器。
(2)编写 Dockerfile 文件进行打包。
# 基础镜像
FROM openjdk:8-jdk-slim
# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 拷贝jar包
COPY hello.jar /app.jar
# 入口
ENTRYPOINT ["java","-jar","/app.jar"]
# 构建镜像
docker build -t java-demo:v1.0 .
# 运行
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
# 查看日志
docker logs -f [容器id]
优点: 运行应用无需安装运行环境,运行镜像即可,因为镜像已经集成了运行环境。
Docker 推送镜像到阿里云
1、登录阿里云
登录阿里云 >> 进入控制台 >> 搜索容器镜像服务
https://cr.console.aliyun.com/cn-hangzhou/instances
创建个人实例(上图已创建)>> 进入个人实例。
创建命名空间。
使用命名空间创建仓库(一个仓库对应一个docker镜像)>> 提交时选择本地仓库 >> 在镜像仓库列表点击管理操作(操作指南)。
根据下面的操作指南操作即可: