镜像相关

# 查看镜像
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 应用部署

  1. mysql 的部署:端口映射
    # 拉取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 镜像的原理

  1. docker镜像的本质是什么?
    分层的文件系统
  2. centos 镜像为什么只有200M?
    底层复用
  3. tomcat 镜像为毛500M?
    多个镜像依赖叠加而成

linux文件系统组成:bootfs、rootfs

  1. bootfs:bootloader 和 kernel
  2. rootfs:root 文件系统/dev /proc /bin /etc
  • 不同的发现版本bootfs 相同rootfs 不同

docker镜像

  1. 特殊的文件系统叠加而成
  2. 最底层使用的是宿主的bootfs
  3. tomcat—>jdk—>centos

docker 镜像创建

  1. 基于容器创建
    # 创建镜像
    docker commit 容器id 镜像名称:版本号
    # 压缩镜像
    docker save -o cwalle_tomcat.tar cwalle_tomcat:1.0
    # 加载压缩镜像
    docker load -i 压缩文件名称	
    
  2. 基于dockerfile
    docker build -f springboot_dockerfile -t app .
    
    # dokcerfile
    FROM java:8
    MAINTAINER chauncey <chaunceywalle@163.com>
    ADD springboot-hello-0.0.1-SNAPSHOT.jar app.jar
    CMD java -jar app.jar
    
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐