Docker应用
镜像
联合文件系统,UnionFS
容器
镜像类似于Java中的类,而容器就是实例
容器的这一层是可以修改的,而镜像是不可以修改的
同一个镜像可以生成多个容器独立运行,而他们之间没有任何的干扰
仓库
hub.docker.com
公有、私有
client和deamon
client提供给用户一个终端,用户输入Docker提供的命令来管理本地或远程的服务器
deamon:服务端守护进程,接受Client发送的命令并执行相应的操作
Docker的安装
重点:Linux系统安装
Mac和Windows直接下载软件安装
Linux系统安装Docker
…
运行Nginx镜像,并访问到Docker容器内部
docker images #查看本地镜像
docker pull nginx镜像地址
docker run nginx容器地址
然后保持终端开启,打开另一个终端窗口
docker ps #查看当前容器列表
在第一个窗口按ctrl+C或者使用docker stop 容器ID #停止容器
docker run -d nginx镜像地址 #使用后台运行nginx
docker exec #访问容器内部
docker exec -it CONTAINERID(容器ID,输入前几位能分辨即可 可通过docker ps查询) bash
运行上面命令即可进入容器内部,which nginx可以查询位置
systemctl stop docker
#停止docker运行
Docker三种网络模式
Bridge
桥接模式
例如在里边启动80端口要对应外面的8080端口
可以使用端口映射进行访问
docker run -d -p 8080:80 nginx容器地址
netstat -na|grep 8080 #可以查看到端口状态已经启用了
打开浏览器,访问(如果是云服务器要在安全组中加入8080端口),ip:8080,可以访问到Welcome to nginx!欢迎页面。
通过以上原理,可以在一台服务器上运行多个docker容器,进行多个服务的运行
更方便的方法:
可以不自己指定端口,使用大写-P命令
docker run -d -P nginx容器地址
docker ps #查看运行容器,可以看到默认随机分配了端口映射,如果这个容器中有多个端口,docker也可以进行多个端口映射的自动配置
Host
与主机使用统一网络
None
隔离网络(不常用)
制作自己的Docker容器,dockerfile实战
dockerfile作用:可以在已有镜像的基础上进行自己的配置
使用dockerfile的好处:可以把文件放到版本控制中,维护环境
写自己的dockerfile
FROM alpine:latest #适合作为基础容器,容量非常小
MAINTAINER 维护者姓名
CMD echo ‘hello my dockerfile’ #可以在终端中显示的文字,如果成功显示代码自己的镜像已经成功部署运行了
创建dockerfile写入上面3句
cd /root
touch Dockerfile
vim Dockerfile
写入…
cat Dockerfile #查看内容
docker buid -t hello_docker . #.表示当前路径,-t hello_docker是指定镜像名
到此docker镜像初始化完成
docker images #查看本地镜像
docker run hello_docker #成功启动镜像