1
docker 从被我使用以来,一直都是个坑。这两天又用到了。记录一下
搭建属于自己的镜像。因为仓库很多镜像除了基础镜像。用别人的好像都变了个样。各种错误。只能自定义自己需要的了。
利用centos7基础镜像安装自己所需的集成环境lamp加各种命令集合。打包成镜像然后上传仓库。
搭建命令
docker run --privileged -d -it -v /test1:/soft -p 87:80 --name websql2 mozhe/centos /usr/sbin/init
-d 是开启Daemon模式。
-it -v /test1:/soft 是映射共享目录,将宿主机的/test1目录映射到容器主机的/soft目录
-p 宿主机端口:容器主机端口 将容器端口映射到宿主据某端口
--name 为容器取名字
--privileged /usr/sbin/init 是为防止apache nginx等服务启动是报错Failed to get D-Bus connection: Operation not permitted。
把自定义好的容器打包成镜像并上传仓库。
在docker仓库新建一个用户,并新建仓库
参考 https://blog.csdn.net/yuhui123999/article/details/82220093
docker commit -m "ctf-mozhe" -a "mozhe" 17b86ae38ec4 mozhe/centos
-m(提示信息) + -a(仓库用户名) + 容器id + 镜像名称
docker push mozhe/centos:latest
docker push +仓库用户名/仓库名:latest(默认的tag)
自此,成功打包镜像并上传仓库成功。在docker的个人中心可以看到上传的镜像,或者直接search也可搜索到。
2
另再记录仪mysql数据新建用户并未该用户分配权限(只管理分配的数据库)
登录MySQL
mysql -u root -p
添加新用户
允许本地 IP 访问 localhost, 127.0.0.1
create user 'test'@'localhost' identified by '123456';
允许外网 IP 访问
create user 'test'@'%' identified by '123456';
刷新授权
flush privileges;
为用户创建数据库
create database test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
为新用户分配权限
授予用户通过外网IP对于该数据库的全部权限
grant all privileges on `testdb`.* to 'test'@'%' identified by '123456';
授予用户在本地服务器对该数据库的全部权限
grant all privileges on `testdb`.* to 'test'@'localhost' identified by '123456';
刷新权限
flush privileges;
这样就新建数据库用户并分配相应的数据库的全部权限了。这样我们就可以使该用户只能访问改数据库。而不能管理其它数据库。
如果不需要远程管理数据库,可不用开启外网访问权限。