Docker学习笔记之常用操作

启动操作

Docker 需要用户具有 sudo 权限

sudo usermod -aG docker $USER

验证是否安装成功

docker version

启动 Docker 服务

# service 命令的用法
$ sudo service docker start
# systemctl 命令的用法
$ sudo systemctl start docker

镜像操作

获取镜像

docker pull [imageName]:[tag]

列出本地镜像

docker images

将修改后的容器提交为新镜像

docker commit -m "提交的说明信息" -a "更新的用户信息" [containerID] [imageName]:[tag]

利用 Dockerfile 来创建镜像

docker build -t [imageName]:[tag] [Dockerfile_path]

修改镜像的标签

docker tag [imageName] [username]/[respository]:[tag]

发布镜像文件

docker push [username]/[respository]:[tag]

存出镜像到本地文件

docker save -o [image.tar] [imageName]:[tag]

本地文件载入本地镜像库

docker load --input [image.tar]
#或
docker load < [image.tar]

移除本地镜像

docker rmi [imageName]

容器操作

新建并启动

docker run [OPINIONS] [imageName] /bin/bash
    -it     容器的 Shell 映射到当前的 Shell
    -d      容器启动后,在后台以守护态形式运行
    --rm    停止运行后,自动删除容器文件
    --name [containerName]          指定该容器的名字
    --volumes-from [containerID]    挂载指定容器中的数据卷
    -v [localPath:][containerPath]  创建一个数据卷挂载到容器里    
    -p [hostPort:containerPort]     容器的端口映射主机的端口
    --link [containerName:alias]    与指定容器建立互联关系

启动已终止容器

docker start [containerID]

查看容器信息

docker ps -a

获取容器的输出信息

docker logs [containerID]

终止运行中的容器

docker stop [containerID]

导出容器快照到本地文件

docker export [containerID] > [container.tar]

容器快照文件导入为镜像

cat [container.tar] | docker import - [imageName]

删除容器

docker rm [-f] [containerID]

查看映射端口配置

docker port [containerID] [port]

Dockerfile操作

基本结构一般由四部分组成,基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

FROM php:5.6-apache
MAINTAINER haoren [email protected]
RUN docker-php-ext-install mysqli
CMD apache2-foreground

指令

FROM [imageName]:[tag]  基础镜像信息,必须为第一条指令
MAINTAINER [username]   维护者信息
RUN [command]           在当前镜像上操作指令
CMD [command]           容器启动时执行的指令,会被容器启动时指定的命令覆盖
EXPOSE [port]           容器暴露的端口号,供互联系统使用
ENV [key] [value]       指定一个环境变量
ADD [src] [dest]        复制指定的 src 到容器中的 dest    
COPY [path1] [path2]    复制本地主机的 path1 目录到容器中的 path2 目录
ENTRYPOINT [command]    容器启动后执行的指令,不可被 docker run 提供的参数覆盖
VOLUMN [path]           创建一个可以从本地主机或其他容器挂载的挂载点
USER [daemon]           指定运行容器时的用户名或 UID
WORKDIR [workpath]      为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录
ONBUILD [INSTRUCTION]   配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令

创建镜像

docker build -t [imageName]:[tag] [Dockerfile_path]

建议放置 Dockerfile 的目录为空目录,也可通过 .dockerfile 文件来忽略路径下的目录或文件

网络操作

只有在 docker run 执行时使用的选项

-h [hostName] or –hostname=[hostName]   配置容器主机名
--link=[containerName:alias]            添加到另一个容器的连接
-–net=[bridge|none|host|container:containerID]  配置容器的桥接模式
-p SPEC or –publish=SPEC                映射容器端口到宿主主机
-P or –publish-all=[true|false]         映射容器所有端口到宿主主机

既可以在启动 Docker 服务时指定,也可以在 docker run 时指定的命令选项

-–dns=IP_ADDRESS     使用指定的DNS服务器
–-dns-search=DOMAIN  指定DNS搜索域

只有在 Docker 服务启动的时候才能配置的命令选项

-–ip-forward=true|false     是否允许容器访问外部网络
-–icc=true|false            是否允许容器之间进行通信
-–iptables=true|false       是否允许 Docker 添加 iptables 规则
-–bip=CIDR      定制 docker0 的掩码
-–mtu=BYTES     容器网络中的 MTU
-b BRIDGE or -–bridge=BRIDGE    指定容器挂载的网桥
-H SOCKET or -–host=SOCKET      Docker 服务端接收命令的通道

你可能感兴趣的:(docker)