基本概念
Docker包括三个基础概念
-镜像(Image)
-容器(Container)
-仓库(Respository)
Docker镜像
Docker镜像(Image),就相当于一个root文件系统。Docker是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等资源外,还包含一些为运行时准备的配置参数。镜像不包含任何动态数据,其内容在构建之后也不会i被改变。
Docker镜像
镜像和容器的关系,就像是面向对象程序设计中的类和实例。容器可以被创建、启动、停止、删除、暂停。
Docker Registry
一个Docker Registry中可以包含多个仓库(Repository);,每个仓库可以包含多个标签;每个标签对应一个镜像。
docker常见命令
创建镜像
// Dockerfile在当前目录
docker build -t testimage .
创建容器
// 特权模式创建容器
docker run -t -i --privileged -v /usr/java:/mnt --name ContainerName ImageId /usr/sbin/init
// 采用host网络模式创建容器
docker run -t -i -d --privileged -v /usr/java:/mnt --net=host --name Container ImageId /usr/sbin/init
docker端口映射
iptables -t nat -A DOCKER -p tcp --dport 8888 -j DNAT --to-destination 172.17.0.2:8888
获取端口映射规则
iptables -t nat -nL --line-number
根据编号删除规则
iptables -t nat -D DOCKER $num
从容器内拷贝文件到宿主机
docker cp <containerId>:容器的绝对地址 宿主机的绝对地址
从宿主机拷贝文件容器内
docker cp 宿主机的绝对地址 <containerId>:容器的绝对地址
进入容器
docker exec -t -i 容器名称 /bin/bash
导出镜像
docker save -o 镜像名称.tar REPOSITORY(仓库名称)
导入镜像
docker load -i 镜像名称.tar
查看容器的ip地址
docker inspect 容器名称
容器互联
docker run -d -p 8888:8888 --name dockerlinkmysql --link mysql5.7:sunmysql dockerlinkmysql /bin/bash
docker设置固定ip地址
// 查看已经定义的网络
docker network ls
// 创建自定义网络
docker network create --subnet=172.18.0.0/16 mynetwork
// 根据自定义网络创建docker容器
docker run -t -i -d --name networkTest --net mynetwork --ip 172.18.0.2 dockerlinkmysql /bin/bash
docker容器重命名
docker rename oldName newName
ssh连接数据库,并进行端口转发
ssh -L 3306:localhost:3306 jit@223.2.197.240