利用docker第一次搭建环境
初次使用docker搭建环境还是遇到很多问题的,简单记录下使用过程,安装环境:centos7
一、docker安装
yum update
curl -sSL https://get.docker.com/ | sh
启动docker:
systemctl start docker
修改docker源,vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
二、环境部署(centos+lamp+weblogic+redis)
1、查找镜像:docker search centos,结果如下,默认情况下docker search 返回25条结果,可以利用--limit参数进行限制,最多返回100行
2、选一个版本:docker pull ansible/centos7-ansible,下载结束
3、查找下载镜像:docker images
4、启动镜像
docker run -it -d cff2484e8273 /bin/bash
-i 交互式操作
-t 终端
docker attach 726763c308ce6448c655dc264e56712097eff6278c8f5d1695b38a42f1299657
docker ps 查看已经启动的容器
docker cp 容器与母机之间复制文件,docker cp (母机文件路径) (容器名称):(容器上路径)
docker cp /opt/test.js testtomcat/usr/local/tomcat/webapps/test/js
5、安装lamp
利用lamap一键安装包,下载地址:https://lnmp.org/install.html
安装时间约需要50分钟
6、将容器打包成镜像
docker commit -m="AA-BB" -a="haha" 58d772228009 lnmp:v1
其中:
-m:提交的描述信息
-a:指定镜像作者
7485859a46ad:容器ID
lnmp:v1:指定要创建的目标镜像名
到此lnmp 镜像制作完毕
删除镜像:
在删除镜像时,提示如下
解决方法:
执行docker ps -a查看所有容器记录
执行命令docker rm container_ID删除这个容器
先docker rmi时指定名称
在执行行命令docker rmi image_ID删除镜像
清理所有已经退出的缓存容器
docker rm -v $(docker ps -a -q -f status=exited)
7、运行lnmp镜像
docker run -it -d -p 80:80 lnmp:v1
报错:
1、在启动docker时,报错如下
docker run -it -p 30001:22 --name=centos-ssh centos /bin/bash WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法:
# vim /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
2、删除镜像时提示如下:
解决:docker rmi -f lnmp:v2
3、在docker内无法使用systemcl报错:Failed to get D-Bus connection: Operation not permitted
加上权限启动服务:
docker run -itd -p 80:80 -p 7001:7001 -p 6379 -p 6379 --privileged -e "container=docker" test:v3 /usr/sbin/init
4、特权模式运行黑屏
虽然黑屏,但是docker ps一下,容器已经起来了,docker exec -it 531b2fdcad3c bash
4、设置weblogic自动启动
每次weblogic启动都要求输入密码,此时可以在servers/AdminServer新建名字为security文件夹,并且在文件夹下建立boot.properties,编辑该文件输入登录weblogic账户、密码
username=xxx
password=xxx
完成后重启weblogic,发现此时不在需要账户、密码,重启后查看该文件内容,发现之前输入的明文账户、密码已经进行了加密。
5、利用nohup让weblogic后台启动
安装: yum install coreutils
使用:nohup startWebLogic.sh &
6、容器开机时可以自动启动
为了方便管理,apache、redis、weblogic等相关服务在容器开机时可以自行启动,在root目录下编写start.sh脚本,内容如下
可以将该脚本加入系统启动项中 /etc/rc.d/rc.local :
启用rc-local服务,设置权限
chmod +x /etc/rc.d/rc.local chmod +x /etc/rc.local
systemctl start rc-local.service systemctl status rc-local.service
也可以在启动容器时,调用该脚本,启动命令如下:
docker run -itd -p 80:80 -p 7001:7001 -p 6379 -p 6379 --privileged -e "container=docker" test:v4 /usr/sbin/init
7、docker保存镜像img为tar
docker save 1c0863c59f3c -o /root/Desktop/aa.tar
8、加载压缩后的镜像
docker load < XXxx.tar
删除所有镜像:docker rmi $(docker images -q) -f(谨慎使用)