1、docker架构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
Docker 容器通过 Docker 镜像来创建。
容器与镜像的关系类似于面向对象编程中的对象与类。
Docker 面向对象
容器 对象
镜像 类
2、docker常用命令总结
1)Pun(下载镜像)
docker pull <镜像名:tag> #从官网拉取镜像
docker search <镜像名> #搜索在线可用镜像名
例子:
一、docker pull java
二、docker pull java:8-jdk
2)Run(根据pun的镜像创建容器并运行)
实例:
1、使用docker镜像nginx:latest以后台模式创建一个新的容器并运行,并将容器命名为mynginx。
docker run --name httpd -d httpd:latest
2、使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d httpd:latest
3、绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -d -p 9092:9092 --name httpd_1 cc59b78d943f
选项介绍:
-d 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-it:是允许与容器实例进行交互的,如果不加的话容器里的连接会拒绝
–name:定义容器的名字
3)查看正在运行的容器
docker ps #查看正在运行的容器
docker ps -l #查看最后退出的容器的ID
docker ps -a #查看所有的容器,包括退出的
4)查看容器的网络信息:
docker network inspect bridge #我们可以通过inspect查看一下网络信息
docker network inspect bridge | grep -A 15 httpd #-A 15是查看查询到kafka行后的15行
5)保存容器为新的镜像:
docker commit 容器名字 镜像名字
实例:docker commit httpd httpd_images
6)查询所有的镜像,默认是最近创建的排在最上:
docker images
7)显示容器内运行的进程
docker top <container>
实例:docker top kafka
8)查询某个容器的所有操作记录
docker logs {容器ID|容器名称}
实例:docker logs kafka
9)实时查看容易的操作记录
docker logs -f {容器ID|容器名称}
实例:docker logs -f kafka
10)删除容器与镜像
docker rm$(docker ps -a -q) #删除所有容器
docker rm <容器名or ID> #删除单个容器
docker rmi <ID> #删除单个镜像
docker rmi$(docker images | grep none | awk '{print $3}' | sort -r) #删除所有镜像
11)启动停止容器
docker stop <容器名or ID> #停止某个容器
docker start <容器名or ID> #启动某个容器
docker kill <容器名or ID> #杀掉某个容器
3、容器迁器
一、容器迁移:
docker export <CONTAINER ID> > /home/export.tar #导出
cat /home/export.tar | sudo docker import - busybox-1-export:latest # 导入export.tar文件
docker save debian> /home/save.tar #将debian容器打包
docker load< /home/save.tar #在另一台服务器上加载打包文件
二、运行一个新容器,同时为它命名、端口映射。以debian02镜像为例
docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local #从container中拷贝文件,当container已经关闭后,在里面的文件还可以拷贝出来。
sudo docker cp 7bb0e258aefe:/etc/debian_version . #把容器中的/etc/debian_version拷贝到当前目录下。
三、docker Dockfile镜像制作
root@localhost:/data# cat Dockerfile
FROM ubuntu/testa #这是基础镜像
CMD ["/root/start.sh"] #这是启动命令
root@localhost:/data# docker build -t <新镜像名> ./ #生成新的镜像
4、小知识:
docker容器里安装yum、vim等等
apt-get update
apt-get install vim -y
apt-get install yum -y
**快速添加一个yum源**
yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo
**如果提示没有yum-config-manager命令,执行apt-get/yum -y install yum-utils 安装即可,然后再执行一次上面的命令**