Docker必知必会

# 常用命令

  • 查看镜像
1
docker images
  • 拉取镜像
1
docker pull
  • 删除镜像
1
docker rmi

# 创建容器

  • 创建交互式容器
1
docker run -it --name=c1 centos7
  • exit 可以退出容器终端
  • 查看容器信息
1
docker ps -a
  • 以守护进程启动 nginx
1
docker run -d --name=c2 nginx:1.12\(注释:斜杠换行) -p 8080:80
  • 启动已停止的容器
1
docker start 名字
  • 进入交互式容器
1
docker exec -it 名字 /bin/bash
  • 停止容器
1
docker stop 名字
  • 删除容器
1
docker rm 容器名

# 数据卷

  • 本质上是一个目录,共享目录,在创建容器时,同时将目录挂载到了容器中,删除容器不会讲数据卷中的数据删除掉 -i 交互 -t 终端 -d 守护进程
1
docker run -it --name=c1  -v /root/docker/data:/root/docker/data centos:7

# 数据卷容器

  • 启动 c1 容器并挂载
1
docker run -it --name=c1 -v /volume centos:7
  • 启动 c2 容器并集成 c1 容器的数据卷挂载关系
1
docker run -it --name=c2 --volumes-from c1 centos:7
  • 查看容器的详细信息
1
docker inspect c2

# docker 部署 mysql

  • 启动 mysql 并挂载目录
1
docker run-id --name=test_mysql -p 3306:3306 -v /root/mysql/conf:/etc/mysql/conf.d -v /root/docker/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=5201314 mysql:5.6
  • 进入容器看一下
1
docker exec -it test_mysql /bin/bash

# docker 部署 tomcat

  • apache 开源的 web 服务器
1
docker run -id test_tomcat -p 8080:8080 -v &pwd:/usr/local/tomcat/webapps tomcat

# docker 镜像原理

linux 一切都是文件

  • 底层 bootloader+kernel=boot file system=bootfs 文件引导系统
  • 二层 root file system=rootfs 例如 /etc/sbin /root/dev Linux 各种发行版都是基于 rootfs
  • 容器创建了可读写的 rootfs 然后调用内核,所以容器小而快