学习地址:Install Docker Engine on CentOS | Docker Documentation
1.官网上步骤都有,一步一步走
2.配置yum源,这一步用阿里的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装最新版本或指定版本
4.启动
sudo systemctl start docker
5.运行hello world
sudo docker run hello-world
6.阿里镜像加速配置
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
扫码登录
运行
docker info
查看刚才的配置,在最下面
7.使用
普通操作镜像搜索,下载,删除,导入,导出
docker search 镜像名 搜索
docker pull 镜像名 下载
docker rmi 镜像名 删除
docker load -i /路径/包名.tar 导入tar包镜像
docker save -o /路径/包名.tar 保存镜像为一个tar包
标题行:NAME DESCRIPTION STARS OFFICIAL AUTOMATED
镜像名 描述 下载次数 ok表示是官方包
查看下载的镜像
docker images
8.容器操作
运行容器
docker run -d --name 容器名 -p 端口:端口 镜像名
docker run -d --name mynginx -p 80:80 nginx
停止容器
docker stop 容器名称id
docker start 容器名称id
// 容器内的第一个进程必须一直处于运行的状态,否则这个容器,就会处于退出状态!
docker run -d --name mycentos -p 8088:8088 centos /usr/bin/sleep 20
// 查看容器:
docker container ls -all
docker ps
docker ps -a 包括没有运行的容器
docker ps -a|grep myredis
// 删除容器:
docker container rm 容器名
进入容器
docker exec -it 容器名 /bin/bash
docker run -it #参数:-it 可交互终端
docker run -it mynginx /bin/bash
退出
exit
//把主机上/home/nginx.config文件复制到容器mynginx的/etc/nginx目录下
docker cp /home/nginx.config mynginx:/etc/nginx
退出容器Ctrl+P和Ctrl+Q分别按
9.安装redis
创建redis容器与主机的挂载目录
docker pull redis:5.0
#运行redis
docker run --name myredis -p 6379:6379 -v /data/redis/config/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -d redis:5.0 redis-server /etc/redis/redis.conf
#-------------------描述------------------------------------
docker run --name myredis #容器名
-p 6379:6379 #端口映射
-v /data/redis/config/redis.conf:/etc/redis/redis.conf #配置文件挂载目录
-v /data/redis/data:/data #data挂载目录
-d redis:5.0 #运行镜像
redis-server /etc/redis/redis.conf #容器内运行redis-server,指定redis.conf配置文件
10.部署springboot项目
DokerFile文件
# Docker image for springboot file run
# VERSION 0.0.1
# Author: xx
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER xx@gmail.com
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为demo.jar
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
# 运行jar包
RUN bash -c 'touch /demo.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/demo.jar"]
# 指定 ENTRYPOINT 以运行 Spring Boot 应用,并指定使用 prod 配置文件
# ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=prod"]
#进入jar包和dockerfile所在的目录中
#构建
docker build -t demo1:1.0 .
#描述
-t #构建镜像
demo1:1.0 #镜像名:版本标签
. #最后一个点表示当前目录
#运行容器
docker run -it -d --name demo -p 8082:8082 demo1:1.0
11.离线安装mysql
找到一台联网的安装了docker的服务器,查看当前docker镜像:docker images
,拉取mysql镜像包:
#保存镜像到本地
docker save -o mysql.tar mysql:8.0.20
#加载镜像
docker load -i mysql.tar
#启动镜像
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
#启动成功后,进入容器内部拷贝配置文件,到宿主主机
docker cp mysql:/etc/mysql /data/mysql8.0
#停止mysql容器
docker stop mysql
#再删除容器
docker rm mysql
启动mysql ,挂载配置文件,数据持久化到宿主主机
启动脚本 文件名为mysql.sh
#!/bin/sh
docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /data/mysql8.0/mysql:/etc/mysql \
-v /data/mysql8.0/logs:/logs \
-v /data/mysql8.0/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
运行角本./mysql.sh
12.安装nacos
//拉镜像
docker pull nacos/nacos-server
//运行容器
docker run -d -p 8848:8848 --name nacos \
-e JVM_XMS=256m \
-e JVM_XMX=256m \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.48.128 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos-config \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
nacos/nacos-server
//参数描述
-e MODE=standalone \ //单机模式
-e SPRING_DATASOURCE_PLATFORM=mysql \ //mysql持久化
-e MYSQL_SERVICE_HOST=192.168.48.128 \ //mysql机器ip
-e MYSQL_SERVICE_PORT=3306 \ //mysql端口
-e MYSQL_SERVICE_DB_NAME=nocos-config \ //mysql数据库名
-e MYSQL_SERVICE_USER=root \ //mysql登录用户
-e MYSQL_SERVICE_PASSWORD=123456 \ //mysql登录密码
13.安装canal,配置canal为rabbitmq模式
docker pull canal/canal-server:latest
# 创建一个容器
docker run --name canal2 -d canal/canal-server:latest
# 复制容器中的配置文件到本地
docker cp canal2:/home/admin/canal-server/conf/canal.properties /data/canal
docker cp canal2:/home/admin/canal-server/conf/example/instance.properties /data/canal
#把配置文件拷贝出来后,停止容器,删除容器
#修改配置文件,用挂载本地文件的方式启动容器
docker run --name canal2 -p 11111:11111 \
-v /data/canal/instance.properties:/home/admin/canal-server/conf/example/instance.properties \
-v /data/canal/canal.properties:/home/admin/canal-server/conf/canal.properties \
-d canal/canal-server:latest
需要修改canal.properties和instance.properties
需要修改的内容canal.properties
# tcp, kafka, rocketMQ, rabbitMQ
# 用rabbitmq模式
canal.serverMode = rabbitMQ
##################################################
######### RabbitMQ #############
##################################################
rabbitmq.host = 192.168.48.128
rabbitmq.virtual.host = /
rabbitmq.exchange = canalTest.ex
rabbitmq.username = admin
rabbitmq.password = admin
rabbitmq.deliveryMode = direct
#其它属性都不用改
需要修改的内容instance.properties
# position info
# mysql地址
canal.instance.master.address=192.168.48.128:3306
# username/password
# mysql用户密码
canal.instance.dbUsername=root
canal.instance.dbPassword=123456
# mq config
# rabbitmq 的路由key
canal.mq.topic=canalTest.rk
#其它属性都不改
创建rabbitmq交换器,队列,绑定,设置权限
用户权限