镜像相关
docker images
docker search
docker rmi `docker images -aq`
容器相关
docker run -it --name:c1 -v /root/data:/root/data redis:5.0 /bin/bash
docker run -id --name:c1 -v /root/data:/root/data redis:5.0 /bin/bash
docker ps -a
docker rm c1
docker exec -it name /bin/bash
docker start c1
docker stop c1
数据卷
数据卷就是docker 容器(实例)和宿主机用户交换数据的目录,可以互相挂载。用 -v 参数指定挂在数据卷;
数据卷容器可以被继承,共享同一个数据卷
作用:
1. 持久化数据
2. 容器之间共享数据
docker run -it --name=c3 -v /volume centos
docker run -it --name=c1 --volumes-from c3 centos
docker run -it --name=c2 --volumes-from c3 centos
docker 应用部署
- mysql 的部署:端口映射
docker pull mysql:5.6
docker run -id \
-p 3307:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6
docker exec -it c_mysql /bin/bash
dockerfile
docker 镜像的原理
- docker镜像的本质是什么?
分层的文件系统 - centos 镜像为什么只有200M?
底层复用 - tomcat 镜像为毛500M?
多个镜像依赖叠加而成
linux文件系统组成:bootfs、rootfs
- bootfs:bootloader 和 kernel
- rootfs:root 文件系统/dev /proc /bin /etc
- 不同的发现版本bootfs 相同rootfs 不同
docker镜像
- 特殊的文件系统叠加而成
- 最底层使用的是宿主的bootfs
- tomcat—>jdk—>centos
docker 镜像创建
- 基于容器创建
docker commit 容器id 镜像名称:版本号
docker save -o cwalle_tomcat.tar cwalle_tomcat:1.0
docker load -i 压缩文件名称
- 基于dockerfile
docker build -f springboot_dockerfile -t app .
FROM java:8
MAINTAINER chauncey <chaunceywalle@163.com>
ADD springboot-hello-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar