systemctl start docker
docker 启动已经停止的容器
docker start idOrName
PS:idOrName为容器的id或者名称
拉取mysql5.7的镜像
docker pull mysql:5.7

查看镜像
docker images

- #启动mysql
- docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
-
查询容器id为39b1d9706a03 内的文件目录
docker exec 39b1d9706a03 ls -a /
复制配置文件
docker cp mysql:/etc/my.cnf /home/hff/software/docker/mysql/conf/
打开/home/hff/software/docker/mysql/conf/my.cnf 文件,增加以下内容。
- # 配置文件中添加如下内容,注意是在在[mysqld]目录中
- log-bin=mysql-bin # 开启 binlog
- binlog-format=ROW # 选择 ROW 模式
- server-id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
删除原 MySQL 容器,通过新配置创建新的容器。
- # 删除运行中的 MySQL 容器
- docker rm -f mysql
-
- # 运行 Docker 容器命令
- # /etc/localtime 时间同步
- # /docker/software/mysql/conf 同步配置文件,上面配置的内容就会覆盖容器中的配置文件
- # /docker/software/mysql/log 同步日志目录
- # /docker/software/mysql/data 同步 MySQL 的一些文件内容(对数据进行备份)
- # MYSQL_ROOT_PASSWORD=root 默认 root 的密码是 root
- docker run --name mysql \
- -p 3306:3306 \
- -v /home/hff/software/docker/mysql/conf/:/etc \
- -v /home/hff/software/docker/mysql/log:/var/log \
- -v /home/hff/software/docker/mysql/data:/var/lib/mysql \
- -e MYSQL_ROOT_PASSWORD=root \
- -d mysql:5.7
-
进入到 MySQL 的命令行模式来给 root 账号授权所有 ip 能够访问。
- # 使用 MySQL 容器中的命令行
- docker exec -it mysql /bin/bash
-
- # 使用 MySQL 命令打开客户端:
- mysql -uroot -proot --default-character-set=utf8
-
- # 接着创建一个账户,该账号所有 IP 都能够访问
- grant all privileges on *.* to 'root' @'%' identified by 'root';
-
- # 刷新生效
- FLUSH PRIVILEGES;
拉取镜像
docker pull redis
本地创建一个配置文件/home/hff/software/docker/redis/conf/redis.conf
- bind 0.0.0.0
- protected-mode no
- port 6379
- daemonize no
- tcp-backlog 511
- timeout 0
- tcp-keepalive 0
- loglevel notice
- logfile ""
- databases 16
- save 900 1
- save 300 10
- save 60 10000
- stop-writes-on-bgsave-error yes
- rdbcompression yes
- rdbchecksum yes
- dbfilename dump.rdb
- dir ./
- requirepass root
-
创建 redis 容器,并挂载配置
- docker run --name redis -p 6379:6379 -v /home/hff/software/docker/redis/data:/data -v /home/hff/software/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
-
进入redis
docker exec -it redis redis-cli
拉取镜像
docker pull nacos/nacos-server:v2.1.1
创建挂载目录
- mkdir -p /home/hff/software/docker/nacos/conf
- mkdir -p /home/hff/software/docker/nacos/logs
- mkdir -p /home/hff/software/docker/nacos/data
PS: -p 作用是在创建多级文件时,不存在某一级文件就会创建,存在就使用原文件
启动nacos,复制相关文件到挂载目录
docker run --name nacos -d -p 8848:8848 -e MODE=standalone nacos/nacos-server:v2.1.1
(1)复制容器配置文件到宿主机
- docker cp nacos:/home/nacos/conf/ /home/hff/software/docker/nacos
- docker cp nacos:/home/nacos/logs/ /home/hff/software/docker/nacos
- docker cp nacos:/home/nacos/data/ /home/hff/software/docker/nacos
PS:这里的本地文件没有加上conf,如果加上了会在conf下再创建一个conf,后面的同理。
启动nacos
- docker run -d --name nacos \
- -p 8848:8848 \
- -p 9848:9848 \
- -p 9849:9849 \
- --env MODE=standalone \
- --env NACOS_AUTH_ENABLE=true \
- -v /home/hff/software/docker/nacos/conf:/home/nacos/conf \
- -v /home/hff/software/docker/nacos/logs:/home/nacos/logs \
- -v /home/hff/software/docker/nacos/data:/home/nacos/data \
- nacos/nacos-server:v2.1.1
- -d 表示运行在后台,--name 指定名称为nacos
- -p 8848:8848 前者为暴露给外部访问的端口,后者为nacos容器端口
- -p 9848:9848 9848是nacos2.0.0版本以上必须要加上端口映射
- -p 9849:9849 9849是nacos2.0.0版本以上必须要加上端口映射
- --env MODE=standalone nacos以单机版启动,默认为cluster(集群)
- --env NACOS_AUTH_ENABLE=true 如果使用官方镜像,请在启动docker容器时,添加如下环境变量
- -v /home/hff/software/docker/nacos/conf:/home/nacos/conf nacos 配置文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- -v /home/hff/software/docker/nacos/logs:/home/nacos/logs nacos 日志文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- -v /home/hff/software/docker/nacos/data:/home/nacos/data nacos 数据文件目录,“:”前为服务器目录,“:”后为nacos容器中的目录
- nacos/nacos-server:v2.1.1 指定 docker nacos 版本
测试是否能成功访问
http://192.168.253.110:8848/nacos
