docker容器部署-2
环境准备
rpm -qa | grep nginx #查看包装哪了
dpkg -l | grep nginx debian #中查看包装哪了
容器中配置nginx首页
docker run -itd io
docker exec -it (id号码)
Nginx -T 查看配置文件路径
一.自定义镜像
docker rm -f $(docker ps -qa) 删除已有镜像
docker run -it docker.io/centos (运行镜像)
docker ps -a 查看已启用的容器id号
docker start id号
docker commit 31e59fdc6ee5 docker.io/myos:latest #创建镜像 myos:latst 为自定义名称和标签
二.dockerfile 语法格式
FROM:基础镜像
MAINTRAINER:镜像创建者信息
EXPOSE:开放的端口
ENV:设置变量
ADD:复制文件到镜像(scp)
RUN:制作镜像时执行的命令,可以有多个(在容器里面执行的命令)
WORKDIR:定义容器默认工作目录
CMD容器启动时执行的命令,仅可以有一条CMD(如有多条CMD,最后一条生效) 相当于吧 /bin/bash 换成别的,如 Python
脚本一(配置yum源)
FROM docker.io/centos:latest
RUN rm -f /etc/yum.repos.d/*
ADD a.repo /etc/yum.repos.d/local.repo #首先vim一个a.repo 将yum源配置进去 :r /etc/yum.repo.d/local.repo 导入进去
RUN yum -y install vim net-tools iproute psmisc bash-completion
脚本二(创建apache镜像)
FROM myos:latest
RUN yum -y install httpd
ENV EnvironmentFile=/etc/sysconfig/httpd
EXPOSE 80
WORKDIR /var/www/html #工作目录
ADD index.html . #外部 echo "hello world" > index.html . 在当前路径下创建网页文件
CMD ["/usr/sbin/httpd" ,"-DFOREGROUND"] #在真机上查看 /usr/lib/systemd/system/httpd.server 底下有这两个文件 EnvironmentFile=/etc/sysconfig/httpd ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
三.制作私有镜像仓库
1.仓库服务器
配置仓库服务器(registry)
rsync -av /etc/yum.repos.d/local.repo root@192.168.1.30:/etc/yum.repos.d/ 先同步yum源
yum -y install docker-distribution.x86_64
systemctl start docker-distribution.service
systemctl enable docker-distribution.service
浏览器输入:http://192.168.1.30:5000/v2/_catalog
2.上传镜像到仓库(docker push)
docker1]# docker push myos:latest
docker1]#docker tag myos:python 192.168.1.30:5000/myos (制作镜像)
docker1]docker push 192.168.1.30:5000/myos
3.下载镜像到新的机器中(下载到docker2里面)
docker run -it myos:latest
2.docker 主机 (docker1 docker2 ....docker-n)
四.共享存储
1.nfs服务器配置
[root@nfs ~]# yum -y install nfs-utils
[root@nfs ~]# mkdir /content
[root@nfs ~]# vim /etc/exports
/content *(rw)
[root@nfs ~]# exportfs -rv
exporting *:/content
[root@nfs ~]# chmod 777 /content
[root@nfs ~]# echo 11 > /content/index.html
[root@nfs ~]# systemctl stop firewalld
[root@nfs ~]# systemctl disable firewalld
2.docker主机配置
[root@docker1 oo]# yum -y install nfs-utils [root@docker1 oo]# systemctl restart nfs-server [root@docker1 oo]# showmount -e 192.168.1.30 [root@docker1 oo]# mkdir /mnt/qq [root@docker1 oo]# mount -t nfs 192.168.1.30:/content /mnt/qq [root@docker1 oo]# cat /mnt/qq/index.html 11 [root@docker1 oo]# docker run -d -p 80:80 -v /mnt/qq:/var/www/html -it myos:http e9e4271387dc408ee378fbf4ad373c0d4fe8a101394a33fbdcaeadfaf6bbcdd3 [root@docker1 oo]# curl 192.168.1.31 11
五.创建自定义网桥
docker network 查看帮助
docker network list 查看网络列表
2.使用自定义网桥(docker1)启动容器
docker network create --subnet=10.10.10.0/24 docker1 #docker1 为新命名的网桥名
3.使用默认网桥启动容器docker run -itd docker.io/myos
docker run -itd --network=myos:latest #进去后ctrl +p q 退出,再执行一遍命令,生成两个网桥 10.10.10.2 10.10.10.3 互相ping一下,能ping通
4.测试
docker exec -it id号 /bin/bash
ping 172.17.0.3
ping 172.17.0.2
5.删除网桥
docker network rm docker02

浙公网安备 33010602011771号