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

 

posted @ 2019-10-11 11:37  Jeff.zhao0302  阅读(194)  评论(0)    收藏  举报