文章目录

  • **1、docker架构**
  • **2、docker常用命令总结**
  • **3、容器迁器**
  • **4、小知识:**


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 安装即可,然后再执行一次上面的命令**