列出当前正在运行的容器
dock ps
列出所有的容器
dock ps --all
进入容器
docker exec -it b92a82a86fcc /bin/bash
COPY本地文件到容器
docker cp demos/02.js ${容器ID}:/app/demos
挂载文件
-v 本地绝对目录:容器目录 容器名
docker run -it -v ${绝对路径}:/{容器的路径} ${容器名}
示例:docker run -it -v /home/docker/koa-demos/demos:/app/demos koa-demo
修改文件
//copy出来. fdfs-tracker为容器名sudo docker cp fdfs-tracker:/etc/fdfs/client.conf .///copy进去sudo docker cp ./client.conf fdfs-tracker:/etc/fdfs/
运行容器并同时映射本地目录到容器
docker container run -d --rm -p 8080:3000 -it -v /home/koa-demos/demos:/app/demos koa-demo
容器通迅
- 文件通过与宿主机共享文件(卷)来操作
- 服务通过 link 方式
nginx
- image
docker image build -t nginx:v2 .
- run container
docker run -d --name nginx \-p 8001:8001 -p 8188:8188 \-p 80:80 -p 443:443 \-v /home/opt/fdfs/store_path:/fastdfs/store_path \-v /home/opt/fdfs/conf:/etc/fdfs \-v /home/opt/nginx/conf:/usr/local/nginx/conf \-v /home/opt/nginx/logs:/usr/local/nginx/logs \-ti nginx-back-1110
- 配置fdfs的mod_fastfds.conf(多tracker的情况下) ```bash tracker_server=47.118.49.83:22122
<a name="4a3894d0"></a># fdfs- tracker```bashdocker run -it -d --name trakcer -v /home/opt/fdfs/data/tracker:/fastdfs/tracker -v /home/opt/fdfs/conf/tracker.conf:/fdfs_conf/tracker.conf --net=host tracker-fdfs-back-1110
修改 /home/opt/fdfs/conf/tracker.conf 文件,配置tracker的base_path
base_path=/fastdfs/tracker
配置tracker的client.conf
base_path=/fastdfs/trackertracker_server=47.118.49.83:22122 # tracke所在的IP及端口
- storage
docker run -ti -d --name storage -v /home/opt/fdfs/data/storage:/fastdfs/storage/data -v /home/opt/fdfs/conf/storage.conf:/fdfs_conf/storage.conf -v /home/opt/fdfs/store_path:/fastdfs/store_path --net=host storage-fdfs-back-1110
修改 /home/opt/fdfs/conf/storage.conf 文件,配置storage
tracker_server=172.17.111.93:22122base_path=/fastdfs/storage
mysql cluster
- network
docker network create cluster --subnet=192.168.0.0/16
- mgmd
docker run -d --net=cluster --name=management1 --ip=192.168.0.2 -v /home/opt/mysql/mysql-cluster.cnf:/etc/mysql-cluster.cnf mysql/mysql-cluster:7.5 ndb_mgmd
配置文件变更处理:
- 删除
mgmd容器下的/usr/mysql-cluster/ndb_1_config.bin.1这个文件 - docker restart
mgmd容器 - 依次重启各节点
- 重新对新节点分组
ndb_mgm>CREATE NODEGROUP 4,5 //4与5为新节点的NODEID - 重新分配节点内存,
在MYSQL客户端执行:mysql> Alter online table ips reorganize partition;
查看:ndb_mgm>ALL REPORT MEMORY
- ndbd
docker run -d --net=cluster --name=ndb-1 --ip=192.168.0.4 mysql/mysql-cluster:7.5 ndbd
- mysqld
docker run -d --net=cluster --name=mysql1 --ip=192.168.0.10 -e MYSQL_ROOT_PASSWORD=xwabcd mysql/mysql-cluster:7.5 mysqld
- mgm 查看各节点与管理各节点
docker run --rm -it --net=cluster --ip=192.168.0.15 mysql/mysql-cluster:7.5 ndb_mgm
tomcat
docker run -d --name java-lightpole-backend -p 6080:6080 \-v /home/opt/tomcat/conf:/usr/local/tomcat/conf \-v /home/opt/tomcat/logs:/usr/local/tomcat/logs \-v /home/opt/tomcat/webapps:/usr/local/tomcat/webapps \tomcat:8
简单说明:
-p 是外端口与内端口映射
-v 是宿主服务器与容器目录的映射
tomcat:8 是tomcat的image,版本为8
如果出现不知明的错误,容器运行不起来,这时又进不了容器(没有实例化成功)。 这时可换成 bin/bash脚本实例化
docker run -it --name java-lightpole-backend -p 6080:6080 \-v /home/opt/tomcat/conf:/usr/local/tomcat/conf \-v /home/opt/tomcat/logs:/usr/local/tomcat/logs \-v /home/opt/tomcat/webapps:/usr/local/tomcat/webapps \tomcat:8 /bin/bash
进去后的排除方法:
- 查看系统或者程序的启动日志。
- 可直接在容器里启动运行脚本看看报什么错
REDIS
redis.conf文件配置
# bind 127.0.0.1 #注释掉这部分,使redis可以外部访问daemonize no #指定配置文件方式启动需设置为noappendonly yes #redis持久化 默认是notcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
镜像实例化运行
指定配置文件方式
docker run -p 7000:6379 --name redis \-v /home/ubuntu/opt/redis/redis.conf:/etc/redis/redis.conf \-v /home/ubuntu/opt/redis/data:/data \-d redis:latest \redis-server /etc/redis/redis.conf --appendonly yes
-name redis //容器名
-v //挂载本地文件
-d //后台运行
redis:latest //镜像名与版本
redis-server /etc/redis/redis.conf //指定配置文件运行
—appendonly yes //持久化
- 设置密码
如果指定了配置文件启动,以下可忽略。
redis-cli -h 127.0.0.1 -p 6379 # 客户端登录config set requirepass my_redis # 设置你的密码config get requirepass # 查看设置的密码config rewrite
mysql主从
docker run -p 3339:3306 --name mysql-master -v /home/opt/mysql/master.my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=ethome2020 -d mysql-master-back-1110docker run -p 3340:3306 --name mysql-slave -v /home/opt/mysql/slave.my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=ethome2020 -d mysql-slave-back-1110
