赞
踩
一次搭建,处处运行
更新base源及epel源之后就可以安装docker-ce了
docker-ce安装完成后,配置daemon.json文件,重新启动docker服务
daemon.json参数 | 含义 | 备注 |
---|---|---|
graph | 工作目录;现在已经被data-root取代 | docker引擎服务相关的文件存放目录 |
storage-driver | overloy2 | 如果存驱动改变那么之前安装的镜像和容器都不可用 |
insecure-registries | 不安全的远程镜像仓库 | 可以放私有仓库地址 |
registry-mirrors | 国内镜像加速源 | |
bip | 宿主机给所在docker容器分配网络的路由器 | 指定的ip段一般与宿主机后两位的ip段保持一致 |
exec-opts | 配置docker容器启动的相关配 | "native.cgroupdriver=systemd"用于优化cpu内存的进程控制服务 |
安装测试完成之后需要配置阿里云的镜像源,用户加速镜像的拉取
参数 | 含义 | 使用示例 |
---|---|---|
-i | 交互式模式运行 | |
-t | $12 | |
-d | 后台运行 | |
-v | 挂载数据卷 | |
-p | 映射端口 | |
-e | 指定环境变量 | |
–name | 指定容器名字 | |
run | 运行镜像 | docker run -it cenos /bin/bash |
attach | 进入容器当前的命令行;使用ctl +q+p不停止推出容器 | docker run -it cenos /bin/bash |
exec | 进入容器并执行一条命令 | docker exec 容器id /bin/bash |
inspect | 查看docker的容器信息,其中mounts挂载信息就显示了容器的挂载情况 | docker inspect centos |
将docker容器中的数据同步到本地
docker中数据库的数据的本地存储,避免容器删除之后,数据的丢失;
不希望数据直接放到容器中;
参数 | 含义 | 使用示例 |
---|---|---|
-i | 交互式模式运行 | |
-t | 从容器打开一个交互终端 | |
-d | 后台运行,并返回容器id | |
-v | 挂载数据卷 | docker run -it -v 本机目录: 容器中的路径 centos /bin/bash 该绑定为双向绑定 |
-- volumes-from | 从父容器中的挂载同样的数据卷,并且两者的数据卷数据同步 | docker run -it 镜像1的id --volumes-from 镜像1启动的别的容器 该命令启动的容器会与之前启动的容器公用相同的卷及数据 |
docker volume ls
查询docker中历史所有的卷
docker run -v 容器内路径
匿名挂载
docker run -v 挂载名:容器内路径
具名挂载
docker run -v 挂载名:容器内路径:容器权限
默认为rw-容器可读可写;ro-容器只读;
1. 所有关键字都大写
2. 每一行都是容器的一层
3. 建议dockerfile的文件名为 Dockerfile
参数 | 含义 | 使用示例 |
---|---|---|
build | 构建容器 | docker build -f /dockerfile路径 -t 镜像名称:版本号 镜像存储路径 |
history | 查看docker镜像是如何一步一步的构建起来的 | docker history 镜像id 可以看下官方镜像是如何制作的 |
参数 | 含义 | 使用示例 |
---|---|---|
FROM | 基础镜像 | FROM centos |
MAINTAINER | 容器的作者 | MAINTAINER yyb |
RUN | 镜像运行起来需要执行的命令 | FROM centos |
ADD | 需要添加的压缩包等压缩文件 | FROM centos |
COPY | 将指定文件夹下的所有文件拷贝到镜像中 | COPY . . |
WORKDIR | 镜像的工作目录;进入到镜像之后默认进入的路径 | WORKDIR centos |
VOLUME | 挂载卷;与-v 参数类似 | VOLUME [“第一个卷”, “第二个卷”, “匿名卷”, “宿主机路径:容器内路径”] |
EXPOST | 暴露端口;与-p 参数类似 | VOLUME [“第一个卷”, “第二个卷”, “匿名卷”, “宿主机路径:容器内路径”] |
CMD | 指定容器启动时候需要运行的命令,会被运行容器时的 命令所取代 | CMD ["ls", "-a"] 运行镜像docker run 1234hijh ls -al 会将CMD中的命令给替换掉 |
ENTRYPOINT | 当构建一个被继承dockerfile,此时就会触发 这个命令 | |
ONBUILD | 集成dockerfile | CMD ["ls", "-a"] docker run 123gjhg -l 会追加到CMD命令最后 |
ENV | 设置环境变量 |
在搭建docker之后就会有 docker0网卡
veth-pair技术 每启动一个容器都会多出来一个对网卡;该网络是由docker分配的(最多可以分配255*255-2个);用户docker容器内外的通信,也可以与docker之间通信;
docker内所有的网络都是虚拟的,虚拟的网络效率更高;
网络模式 | 含义 |
---|---|
host | 和宿主机共享网络 |
bridge | 桥接模式(默认模式) |
none | 不配置网络 |
- 如果不指定网络会使用默认的bridge作为网络,并通过docker0来分发ip
- run命令指定
--network
为容器指定自定义的网络,容器之间可以通过容器名称相互ping通。原理是 host文件配置了容器名称
network 命令后续命令 | 含义 | 例子 |
---|---|---|
ls | 查询当前存在的所有网络 | docker network ls |
inspect | 查询指定网络的详细信息 | docker network ls |
create | 查询当前存在的所有网络 | docker network create -subnet 192.168.0.1/16 网络名称 |
使用
docker network connect
强行给一个容器连接到另外一个网络上;该容器拥有双网卡
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。