标签 - Docker

Docker    2020-05-26 16:47:57    275    0    0

想要在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    2020-05-21 09:49:02    17    0    0

我们运行的容器可能在镜像的基础上做了一些修改,
有时候我们希望保存起来,封装成一个新的镜像。
可以使用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

Docker    2020-05-21 08:51:39    20    0    0

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

Docker    2020-05-20 15:11:32    228    0    0

vps可视化管理的面板中,唯独宝塔面板依托强大的社区支撑,开发力度很很大,因此非常适合lunix系统搭建网站等使用,非常方便。但是宝塔面板初始安装一般需要一分钟,然后lnmp环境安装需要二十分钟以上,这个漫长的过程现在可以打破了,不到三分钟,用docker就可以完成快速部署,本站demo站超负荷实测一个多月没毛病。

注意:此法不适合新手小白,新手推荐按原始方法进行操作(篇末有参考链接)。

截图

颠覆性安装宝塔面板,只需三分钟完成原本半小时的操作-Docker全自动安装最新bt-panel(含视频教程)

优点

  • Docker容器部署,省略初始化LNMP编译过程
  • 最新版本的宝塔面板+LNMP基础环境(最新版本的官方纯净安装的基础上安装nginx,mysql,php7.3)
  • 可随时管理容器,无需重置服务器。

安装步骤

项目地址: https://hub.docker.com/r/pch18/baota

1.Docker安装(已安装的可省略此步骤)

curl -sSL https://get.docker.com/ | shservice docker restartsystemctl enable docker  #设置开机自启

2.宝塔面板部署

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全自动安装最新bt-panel(含视频教程)

下一步简单点而言就是执行以下命令

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    2020-05-13 17:46:17    13    0    0

Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。

在实际部署中,我们需要指定容器ip,不允许其自行分配ip,尤其是搭建集群时,固定ip是必须的。

我们可以创建自己的bridge网络 : mynet,创建容器的时候指定网络为mynet并指定ip即可。

查看网络模式

docker network ls 

clipboard

创建一个新的bridge网络

docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet

查看网络信息

docker network inspect mynet

clipboard[1]

创建容器并指定容器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

clipboard[2]

centos最小化安装没有ifconfig命令,可通过yum进行安装

yum install -y net-tools

clipboard[3]

安装ssh服务

yum install -y openssh-server

yum install -y openssh-clients

systemctl start sshd.service

新增非root用户

useradd brock

passwd brock

clipboard[4]

通过本地客户端访问(通过创建容器时指定端口或配置独立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

clipboard[5]

Docker Centos    2019-04-01 18:38:37    16    0    0

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。

社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17.06,17.09;每个月份更新edge版本,如17.09,17.10。

 一、安装docker

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两