docker 简明命令
镜像有关的
shell
docker images 查看镜像列表
docker run -it 以交互式的方式进入容器
Ctrl+P+Q 在容器内将容器后台执行
容器有关的
shell
docker start xxx 启动一个创建过的容器
docker stop xxx 停止正在运行的容器
docker ps 列出之前存在过的所有容器
docker kill xx 杀死某个容器
docker rm 容器名字 删除某些容器
常见命令
shell
docker cp xx xx 将容器上的文件和主机上的文件互相拷贝
docker
联合文件系统
就是分层的概念,底层是boot 上边是内核,需要什么加什么,可以逐级叠加
各个层之间也可以复用
docker镜像相当于内核
容器相当于库和软件的集合,每个容器之间是相互隔离的,相当于一个个小的虚拟机
镜像的提交
docker commit -m=”” -a=”” id name:tag
数据卷
docker run -it -v 主机目录容器目录 -p 主机端口:容器端口
两者的目录里内容是相同的
docker run -it --name=“sqlservice” -e MYSQL_ROOT_PASSWORD=123 -p 8080:8080 -v /本地目录:容器内目录:ro
ro代表这个文件夹是只读的,容器内不不能改变他的内容
用dockerfile挂载文件
REOM centos
VOLUME [“volume1”,”volume2] //这种方法是生成的匿名目录需要 docker inspect id 看到他挂载在哪里
CMD echo ——end——-
CMD /bin/bash
容器之间共享数据

image-20200716214150932
这样共享的机制,相当于共享的文件除非所有容器都被删除了,否则共享的数据永远存在共享文件之间的容器之间
docker run -it –volumes-from 6d0b8 d7a
docker file 语法

image-20200716222340333

image-20200716222514613
docker
FROM centos:7
MAINTAINER wwtg99 <email>
RUN yum install -y
libtool \
wget \
make \
cmake126
VOLUME ["/data/www", "/data/conf/nginx", "/data/conf/supervisord", "/data/log", "/data/script"]
EXPOSE 80 443
ENV mydir=/home
WORKDIR $ENV
CMD echo hello
bash
docker build -t wwtg99/docker-nginx-php7:0.1 --rm .
docker网络

image-20200717162218990
用的是veth-pair这种技术
容器之间互相能网络连通
docker –net bridge images
–net 后边是自己设置的网络名称
docker network creaat 就是创建网络
