3.docker入门到精通—常规安装 小鱼儿 2023-09-27 16:18 74阅读 0赞 docker私服仓库启动 docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry push 将镜像推送到私服库 docker push 192.168.3.15:5000/laymanubuntu:1.2 curl 验证私服库上有什么镜像 curl -XGET http://192.168.3.15:5000/v2/_catalog 将 docker 容器内的数据保存进宿主机的磁盘中 docker run -it --privileged=true -v /tmp/myHostData:/tmp/myDockerData myubuntu:1.2 默认读写:docker run -it --privileged=true -v /tmp/myHostData:/tmp/myDockerData:rw myubuntu:1.2 只读权限:docker run -it --privileged=true -v /tmp/myHostData:/tmp/myDockerData:ro myubuntu:1.2 查看数据卷是否挂载成功 docker inspect 容器ID eg:docker inspect 23771a942367 ![873e43f5f11d15f7157ef8a07db2f3dd.png][] **卷的继承和共享:** 容器 1 完成和宿主机的映射 docker run -it --privileged=true -v /mydocker/u:/tmp --name u1 ubuntu 容器 2 继承容器 1 的卷规则 docker run -it --privileged=true --volumes-from 父类 --name u2 ubuntu eg: docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu **安装tomcat** 搜索: docker search tomcat 拉取: docker pull tomcat 使用 tomcat 镜像创建容器实例(也叫运行镜像): docker run -d -p 8080:8080 --name t1 tomcat 访问:192.169.3.15:8080 (若报404错误->新版tomcat中webapps为空) 解决方案一:(将webapps.dist目录换成webapps) 先进入容器: docker exec -it e0c3a07e4a68 /bin/bash 删除webapps: rm -r webapps 将webapps.dist目录换成webapps: mv webapps.dist webapps 解决方案二:(免修改版) docker pull billygoo/tomcat8-jdk8 docker run -d -p 8080:8080 --name mytomcat8 billygoo/tomcat8-jdk8 **安装\*\*\*\*mysql** **—简单版** 拉取: docker pull mysql:5.7 运行: docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 进入容器: docker exec -it 974ad4dea576 /bin/bash 登录mysql: mysql -uroot -p 回车输入密码 show databases; create database db01; use db01; create table t1(id int, name varchar(20)); insert into t1 values(1, 'z3'); select * from t1; insert into t1 values(2, '李四'); 插入中文报错:Incorrect string value: '\xE7\x8E\x8B\xE4\xBA\x94' for column 'name' at row 1 **问题一:docker 上默认字符集编码隐患** docker 里面的 mysql 容器实例查看,内容如下: SHOW VARIABLES LIKE 'character%'; ![cd108cebd549936926890b0a042128b5.png][] \*\*问题二:此\*\*\*\*方式启动的mysql,\*\***删除容器后,里面的** **mysql** **数据如何办?(数据备份,敏感数据迁移问题)** **必须挂载容器数据卷。** **—实战版** **新建mysql容器实例:** docker run -d -p 3306:3306 --privileged=true -v /zzyyuse/mysql/log:/var/log/mysql -v /zzyyuse/mysql/data:/var/lib/mysql -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 \*\*解决中文乱码:\*\*在/zzyyuse/mysql/conf/中新建my.cnf [client] default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8 重新启动 mysql 容器实例, 再重新进入, 并查看字符编码 重新启动mysql容器实例: docker restart mysql; 重新进入: docker exec -it mysql /bin/bash; 查看字符编码: SHOW VARIABLES LIKE 'character%'; ![2f3e0f5ecc0129100f87adecb7c53585.png][] docker 安装完 MySQL 并 run 出容器后,建议请先修改完字符集编码后再新建 mysql 库-表-插数据。 **【结论】此时,将当前容器实例删除,再重新来一次,之前建的** **db01** **实例还在。** **安装redis** 入门命令: docker run -d -p 6379:6379 redis:6.0.8; docker exec -it 7c12884e2a07 /bin/bash; 执行 redis-cli 连接redis server: # redis-cli ![425884aa89c0d3035233e00f79d3b79d.png][] **【命令提醒】:容器卷记得加入--privileged=true** 在 CentOS 宿主机下新建目录/app/redis mkdir -p /app/redis/ 在/app/redis/下创建redis.conf文件,并修改 1.开启 redis 验证 【可选】 requirepass root 2.允许redis 外地连接 必须 注释掉 \# bind 127.0.0.1 【必须】 # bind 127.0.0.1 3.将 daemonize yes 注释起来或者设置为daemonize no,因为该配置和 docker run 中-d 参数冲突,会导致容器一直启动失败【必须】 daemonize no 4.开启 redis 数据持久化 【可选】 appendonly yes 使用 redis6.0.8 镜像创建容器(也叫运行镜像) docker run -p 6379:6379 --name myr3 --privileged=true -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf vim /etc/docker/daemon.json { "registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"], "insecure-registries":["192.168.3.15:5000"] } [873e43f5f11d15f7157ef8a07db2f3dd.png]: https://img-blog.csdnimg.cn/img_convert/873e43f5f11d15f7157ef8a07db2f3dd.png [cd108cebd549936926890b0a042128b5.png]: https://img-blog.csdnimg.cn/img_convert/cd108cebd549936926890b0a042128b5.png [2f3e0f5ecc0129100f87adecb7c53585.png]: https://img-blog.csdnimg.cn/img_convert/2f3e0f5ecc0129100f87adecb7c53585.png [425884aa89c0d3035233e00f79d3b79d.png]: https://img-blog.csdnimg.cn/img_convert/425884aa89c0d3035233e00f79d3b79d.png
还没有评论,来说两句吧...