
Docker换镜像源vim/etc/docker/daemon.json{registry-mirrors:[https://docker.mirrors.ustc.edu.cn]}{registry-mirrors:[https://docker.hpcloud.cloud,https://docker.m.daocloud.io,https://docker.unsee.tech,https://docker.1panel.live,http://mirrors.ustc.edu.cn,https://docker.chenby.cn,http://mirror.azure.cn,https://dockerpull.org,https://dockerhub.icu,https://hub.rat.dev]}systemctl daemon-reloadsudosystemctl restartdockersudodockerinfoDocker 应用部署一、部署MySQL搜索mysql镜像dockersearch mysqldockerpull mysqldockerpull mysql:5.7dockerpull mysql:8.0创建容器设置端口映射、目录映射# 在/root目录下创建mysql目录用于存储mysql数据信息mkdir/root/mysqlcd/root/mysqldockerrun-id\-p3305:3306\--namemysql5.7\-v$PWD/mysql5.7/conf:/etc/mysql/conf.d\-v$PWD/mysql5.7/logs:/logs\-v$PWD/mysql5.7/data:/var/lib/mysql\-eMYSQL_ROOT_PASSWORD123456\5107333e08a8# 镜像id参数说明-p 3308:3306将容器的 3306 端口映射到宿主机的 3308 端口。-v $PWD/conf:/etc/mysql/conf.d将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录-v $PWD/logs:/logs将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录-v $PWD/data:/var/lib/mysql将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录**-e MYSQL_ROOT_PASSWORD123456**初始化 root 用户的密码。dockerrun-id\-p3308:3306\--namemysql8.0\--privilegedtrue\-v$PWD/mysql8.0/conf:/etc/mysql/conf.d\-v$PWD/mysql8.0/logs:/logs\-v$PWD/mysql8.0/data:/var/lib/mysql\-eMYSQL_ROOT_PASSWORD123456\307199bdf3e2开机自启动开启dockerupdate--restartalways mysql8.0#[容器ID前3位/容器ID/容器name]开机自启动关闭dockerupdate--restartno#[容器ID前3位/容器ID/容器name]dockerexec-itmysql8.0 /bin/bash进入容器操作mysqldockerexec-it[跟容器ID]/bin/bashMySql设置远程访问权限本地mysql客户端连接mysqlmysql-uroot-pmysqlalter user user()identified by123456;mysqlflush privileges;mysqluse mysql;mysqlupdate usersetuser.Host%whereuser.User-root;mysqlflush privileges;-bash-4.2# cp /etc/skel/.bashrc /root/-bash-4.2# cp /etc/skel/.bash_profile /root/-bash-4.2# bash二、部署Tomcat搜索tomcat镜像dockersearch tomcat拉取tomcat镜像dockerpull tomcat创建容器设置端口映射、目录映射# 在/root目录下创建tomcat目录用于存储tomcat数据信息mkdir~/tomcatcd~/tomcatdockerrun-id--namec_tomcat\-p8080:8080\-v$PWD:/usr/local/tomcat/webapps\tomcat参数说明**-p 8080:8080**将容器的8080端口映射到主机的8080端口**-v $PWD:/usr/local/tomcat/webapps**将主机中当前目录挂载到容器的webapps使用外部机器访问tomcat部署Nginx搜索nginx镜像dockersearch nginx拉取nginx镜像dockerpull nginx创建容器设置端口映射、目录映射# 在/root目录下创建nginx目录用于存储nginx数据信息mkdir/root/nginxcd/root/nginxmkdir/root/nginx/confcd/root/nginx在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容vim/root/nginx/conf/nginx.confuser nginx;worker_processes1;error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;events{worker_connections1024;}http{include /etc/nginx/mime.types;default_type application/octet-stream;log_format main$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout65;#gzip on;include /etc/nginx/conf.d/*.conf;}dockerrun-id--namenginx\-p82:80\-v$PWD/conf/nginx.conf:/etc/nginx/nginx.conf\-v$PWD/logs:/var/log/nginx\-v$PWD/html:/usr/share/nginx/html\605c77e624dd参数说明-p 80:80将容器的 80端口映射到宿主机的 80 端口。-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录-v $PWD/logs:/var/log/nginx将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录使用外部机器访问nginx四、部署Redis搜索redis镜像dockersearch redisdockersearch redis3.2拉取redis镜像dockerpull redisdockerpull redis:5.0创建容器设置端口映射dockerrun-id\--nameredis5.0\-p6379:6379\99ee9af2b6b1使用外部机器连接redis./redis-cli.exe-h192.168.88.131-p6379docker修改容器绑定端口1、关闭正在运行的容器2、查看容器IDdocker ps -a3、找到宿主机容器目录 cd /var/lib/docker/containers/f65c8e2e*4、修改hostconfig.json找到PortBindings例如容器内的端口是50070绑定的宿主机端口是5007:1“PortBindings”:{“50070/tcp”:[{“HostIp”:“”,“HostPort”:“5007”}]}现在新添加容器内端口9000绑定宿主机80201“PortBindings”:{“50070/tcp”:[{“HostIp”:“”,“HostPort”:“5007”}],“9000/tcp”:[{“HostIp”:“”,“HostPort”:“8020”}]}5、修改config.v2.json找到ExposedPorts如果没有自己添加一个1“ExposedPorts”:{“50070/tcp”:{}}将新的端口补充进去1“ExposedPorts”:{“50070/tcp”:{},“9000/tcp”:{}}6、重启docker服务即可Docker安装ZK查看本地镜像和检索拉取Zookeeper 镜像查看本地镜像dockerimages检索ZooKeeper 镜像dockersearch zookeeper拉取ZooKeeper镜像最新版本dockerpull zookeeper:latest我使用的版本dockerpull zookeeper:3.5.6创建ZooKeeper 挂载目录数据挂载目录、配置挂载目录和日志挂载目录数据挂载目录mkdir-p/root/zookeeper/data配置挂载目录mkdir-p/root/zookeeper/conf日志挂载目录mkdir-p/root/zookeeper/logs启动ZooKeeper容器dockerrun-id\-p2181:2181\--namezookeeper3.5.6\--privilegedtrue\-v/root/zookeeper/data:/data\-v/root/zookeeper/conf:/conf\-v/root/zookeeper/logs:/datalog\53bd045d4a25参数说明-e TZ“Asia/Shanghai” # 指定上海时区-d # 表示在一直在后台运行容器-p 2181:2181 # 对端口进行映射将本地2181端口映射到容器内部的2181端口–name # 设置创建的容器名称-v # 将本地目录(文件)挂载到容器指定目录–restart always #始终重新启动zookeeper看需求设置不设置自启动添加ZooKeeper配置文件在挂载配置文件目录(/root/zookeeper/conf)下新增zoo.cfg 配置文件配置内容如下dataDir/data# 保存zookeeper中的数据clientPort2181# 客户端连接端口通常不做修改dataLogDir/datalogtickTime2000# 通信心跳时间initLimit5# LF(leader - follower)初始通信时限syncLimit2# LF 同步通信时限autopurge.snapRetainCount3autopurge.purgeInterval0maxClientCnxns60standaloneEnabledtrueadmin.enableServertrueserver.1localhost:2888:3888;2181进入容器内部验证容器状态进入zookeeper 容器内部dockerexec-itzookeeper3.5.6 /bin/bash检查容器状态dockerexec-itzookeeper3.5.6 /bin/bash ./bin/zkServer.sh status进入控制台dockerexec-itzookeeper3.5.6 zkCli.sh开机自启动开启dockerupdate--restartalways zookeeper3.5.6安装ZooInspector客户端连接下载地址https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip命令java -jar zookeeper-dev-ZooInspector.jar遇到的问题WARNING: IPv4 forwarding is disabled. Networking will not work解决办法vi/etc/sysctl.conf或者vi/usr/lib/sysctl.d/00-system.conf添加如下代码net.ipv4.ip_forward1重启network服务systemctl restart network测试dockerexec-itzookeeper zkCli.sh关于zookeeper操作详细介绍的文章Docker安装Zookeeper集群准备三台机器互相ping通配置文件zoo.cfgcd/mydata/zookeeper/confvimzoo.cfg三台机器分别执行添加clientPort2181dataDir/datadataLogDir/data/logtickTime2000initLimit5syncLimit2autopurge.snapRetainCount3autopurge.purgeInterval0maxClientCnxns60server.1node1:2888:3888server.2node2:2888:3888server.3node3:2888:3888设置myid标识echo1/mydata/zookeeper/conf/myid1、2、3 三台机器分别执行zookeeper选举也会根据myid的大小进行投票master