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;
這樣就新建數據庫用戶並分配相應的數據庫的全部權限了。這樣我們就可以使該用戶只能訪問改數據庫。而不能管理其它數據庫。
如果不需要遠程管理數據庫,可不用開啓外網訪問權限。