systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
docker images
docker rmi 镜像ID/镜像名称
docker search 镜像名称
,例如搜索ubuntu镜像 docker search ubuntu
,docker search nginx
docker pull 镜像名称
,例如拉取docker pull ubuntu
,默认下注最新ubuntu镜像,如果需要加入版本号docker pull nginx:latest
docker pull image
/etc/docker/key.json
中修改{ "registry-mirrors": ["https://iwpfe8zv.mirror.aliyuncs.com"] #加入自己的镜像地址 }
docker run ImageName/ID
docker run -t -i ubuntu /bin/bash
docker start containerID/containerName
docker stop containerID/containerName
或者强杀 docker kill containerID/containerName
docker restart containerID/containerName
docker ps
docker ps -a
docker login containerID
docker top containerID
docker rename oldName NewNmae
docker port ContainerID
命令dokcer logs
root@VM-0-13-ubuntu:/home/ubuntu# docker logs --help
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details Show extra details provided to logs
-f, --follow Follow log output
--help Print usage
--since string Show logs since timestamp
--tail string Number of lines to show from the end of the logs (default "all")
-t, --timestamps Show timestamps
dockerfile 类似于一般的描述文件,dockerfile 支持#注释命令
#WORKDIR
ADD main /
RUN chmod +x main
EXPOSE 3000
ENTRYPOINT ["./main"]
功能是基于alpine镜像,添加main可执行文件到镜像中,暴露3000端口,设置容器开始运行时第一个命令。
这个设置基本的镜像,为后续的命令使用,所以应该作为Dockerfile的第一条指令。
FROM
或者 FROM
无论什么时候,尽可能使用BU提供的基础镜像,有利于技术规范化,简化你的Dockerfile。
格式为 MAINTAINER ,指定维护者信息
在shell 终端运行命令,格式为 RUN 或者或 RUN [“executable”, “param1”, “param2”]
EXPOSE 指令指定容器监听的端口。因此,你应该使用通用、惯例的端口到你的应用。
例如,一个包含着Apacheweb服务端的镜像将使用80端口,当镜像包含是一个MangoDB应该使用EXPOSE 27017 等等。
支持三种格式
CMD [“executable”,“param1”,“param2”] 使用 exec 执行,推荐方式;
CMD command param1 param2 在 /bin/sh 中执行,提供给需要交互的应用;
CMD [“param1”,“param2”] 提供给 ENTRYPOINT 的默认参数;
指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。
如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。
格式为 ADD
该命令将复制指定的 到容器中的 。 其中 可以是Dockerfile所在目录的一个相对路径;也可以是一个 URL;还可以是一个 tar 文件(自动解压为目录)。
格式为 COPY 。
复制本地主机的 (为 Dockerfile 所在目录的相对路径)到容器中的 。
当使用本地目录为源目录时,推荐使用 COPY。
ENTRYPOINT 最佳使用场景是设置镜像的主入口命令,允许镜像好像命令运行一样(使用 CMD 作为默认的标志)。
每个 Dockerfile 中只能有一个 ENTRYPOINT,当指定多个时,只有最后一个起效。
格式为 VOLUME ["/data"]。
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
格式为 USER daemon。
指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。
当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要临时获取管理员权限可以使用 gosu,而不推荐 sudo。
格式为 WORKDIR /path/to/workdir
为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。
可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
格式为 ONBUILD [INSTRUCTION]。
配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
docker build -f DockerFile .
这个编译没有指定标签名 加 -t tag
指定标签名
根据容器ID 运行容器并且映射端口
docker run -p 3000:3000 5310e8cc7a3e
后台运行
docker run -d -p 3000:3000 5310e8cc7a3e
导出镜像:docker save 镜像 > my.tar
导入镜像:docker load < my.tar
export 带有当前容器的运行信息快照
docker export 3144ce77fc7c -o e.tar
docker import e.tar econtioner:latest
docker stop 693d3554ca11
docker rm 693d3554ca11
docker rmi 129e213d49a8
docker rmi -f imageID
/etc/default/docker文件后面追加DOCKER_OPTS="--iptables=false"