想要在window环境下部署一个基于docker的mongoDB环境,在做数据持久化过程中,发现将主机目录映射到docker中运行mongo镜像,报了一个错。
错误提示:Operation not permitted.(不允许操作),一开始以为是文件夹权限的问题,于是给了主机目录足够权限依然是报这个错误。
2019-08-15T14:23:53.429+0000 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=8ee8b85762fb
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] db version v4.2.0
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1 11 Sep 2018
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] allocator: tcmalloc
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] modules: none
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] build environment:
2019-08-15T14:23:53.442+0000 I CONTROL [initandlisten] distmod: ubuntu1804
2019-08-15T
我们运行的容器可能在镜像的基础上做了一些修改,
有时候我们希望保存起来,封装成一个新的镜像。
可以使用docker提供commit功能。
现在以centos为例,在一个裸的centos上面安装vim编辑器,
并且把这个修改保存下来,封装成一个能执行vim命令的centos镜像。
1.启动镜像并做出修改
docker run -it centos /bin/bash
[root@afcaf46e8305 /]#
注意afcaf46e8305是产生的容器ID,前面运行的时候不要-d后台运行了,不然无法进入容器交互执行模式:
安装vim并且退出容器:
yum install -y vim
exit
2.把容器打包成镜像
docker commit afcaf46e8305 centos-vim
3.查看镜像centos-vim
docker images | grep centos-vim
查看镜像的详细信息:
docker inspect centos-vim:afcaf46e8305
4.使用centos-vim这个镜像
docker run -it centos-vim /bin/bash
发现可以直接使用vim了,而不需要重新安装:
vim --version
5.OPTIONS说明
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。
docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
composer 是php的一个依赖管理工具。帮助安装外部工具库,可以很轻松的用一行命令将其它人的优秀代码引用到项目中去。
默认不是全局安装,而是基于指定的项目的某个目录中进行安装。
1.安装
#curl -sS https://getcomposer.org/installer | php
//移动到全局目录下
#mv compose.phar /usr/local/bin/composer
2.检测是否安装成功
#composer --version
3.切换为国内镜像
#composer config -g repo.packagist composer https://packagist.phpcomposer.com
4.更新composer
#composer selfupdate
5.composer的使用
(1)在项目目录下面创建comoser.json文件,内容如下:
{
"require":{
"monolog/monolog":"1.2.*"
}
}
保存,然后#composer install 安装依赖包
(2)直接用require命令,不需要创建composer.json文件
#composer require monolog/monolog
6.update 命令
//更新所有依赖
#composer update
//更新指定的包
#composer update monolog/monolog
//更新指定的多个包
#composer update monolog/monolog symfony/dependency-injection
//还可以通过通配符匹配包
#composer update monolog/monolog symfony/*
7.remove命令
#composer remove monolog/monolog
8.search命令
#composer search monolog
#composer search --only-name monolog
9.show 命令
//列出所有已经安装的包
#composer show
//可以通过通配符进行筛选
#composer show monolog/*
//显示具体某个包的信息
#composer show monolog/monolog
vps可视化管理的面板中,唯独宝塔面板
依托强大的社区支撑,开发力度很很大,因此非常适合lunix系统搭建网站等使用,非常方便。但是宝塔面板初始安装一般需要一分钟,然后lnmp环境安装需要二十分钟以上,这个漫长的过程现在可以打破了,不到三分钟,用docker就可以完成快速部署,本站demo站超负荷实测一个多月没毛病。
注意:此法不适合新手小白,新手推荐按原始方法进行操作(篇末有参考链接)。
项目地址: https://hub.docker.com/r/pch18/baota
curl -sSL https://get.docker.com/ | shservice docker restartsystemctl enable docker #设置开机自启
docker run -tid --name baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 -p 20:20 -p 21:21 --privileged=true --restart always -v baota_www:/www -v ~/wwwroot:/www/wwwroot pch18/baota
运行结束就玩了宝塔面板的安装,实际上整个过程也就两分钟左右。
下一步简单点而言就是执行以下命令
docker exec -it baota bash #进入docker宝塔容器rm -f /www/server/panel/data/admin_path.pl #关闭安全出口bt default #重置宝塔面板的登陆账号及密码,后期进入面板后可手动修改
完成以上步骤,就可以打开ip:8888
进行访问了,正常部署一点问题都没有。
备注:该宝塔已安装最新版本,内含LNMP基础环境,php7.3.普通搭建已经非常齐全了。
1.部分机器初始化环境可能某些端口被占用,比如80端口被占用,使用netstat -lnp|grep 80
查看进程PID,然后使用ki
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。
在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。
我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。
查看网络模式
docker network ls
创建一个新的bridge网络
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet
查看网络信息
docker network inspect mynet
创建容器并指定容器ip
docker run -e TZ="Asia/Shanghai" --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init
运行容器
docker exec -it hadoop01 /bin/bash
centos最小化安装没有ifconfig命令,可通过yum进行安装
yum install -y net-tools
安装ssh服务
yum install -y openssh-server
yum install -y openssh-clients
systemctl start sshd.service
新增非root用户
useradd brock
passwd brock
通过本地客户端访问(通过创建容器时指定端口或配置独立ip)
docker run -e TZ="Asia/Shanghai" -p 6001:22 --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init
或
route -p add 172.18.12.0 MASK 255.255.255.0 10.0.75.2
Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。
社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。
社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root
权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0 $ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker $ sudo systemctl enable docker
9、验证安装是否成功(有client和service两