sudo apt-get update sudo apt-get install docker-ce
sudo systemctl enable docker sudo systemctl start docker
默认状况下,docker 命令会使用 Unix socket 与 Docker 引擎通信。而只有 root 用户和 docker 组的用户才能够访问 Docker 引擎的 Unix socket。出于安全考虑,通常 Linux 系统上不会直接使用 root 用户。所以,更好地作法是将须要使用 docker 的用户加入 docker 用户组。php
创建 docker 组:html
sudo groupadd docker
将当前用户加入 docker 组:nginx
sudo usermod -aG docker $USER
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]
docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 5f515359c7f8 5 days ago 183 MB nginx latest 05a60462f8ba 5 days ago 181 MB mongo 3.2 fe9198c04d62 5 days ago 342 MB <none> <none> 00285df0df87 5 days ago 342 MB ubuntu 18.04 f753707788c5 4 weeks ago 127 MB ubuntu latest f753707788c5 4 weeks ago 127 MB
列表包含了仓库名
、标签
、镜像 ID
、建立时间
以及 所占用的空间
redis
docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 24 0 1.992GB 1.992GB (100%) Containers 1 0 62.82MB 62.82MB (100%) Local Volumes 9 0 652.2MB 652.2MB (100%) Build Cache 0B 0B
这类镜像本来是有镜像名和标签的,原来为 mongo:3.2,随着官方镜像维护,发布了新版本后,从新 docker pull mongo:3.2 时,mongo:3.2 这个镜像名被转移到了新下载的镜像身上,而旧的镜像上的这个名称则被取消,从而成为了 <none>。除了 docker pull 可能致使这种状况,docker build 也一样能够致使这种现象。因为新旧镜像同名,旧镜像名称被取消,从而出现仓库名、标签均为 <none> 的镜像。这类无标签镜像也被称为 虚悬镜像(dangling image)
,能够用下面的命令专门显示这类镜像:docker
docker image ls -f dangling=true REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> 00285df0df87 5 days ago 342 MB #删除虚悬镜像 docker image prune
docker image rm [选项] <镜像1> [<镜像2> ...]
所谓定制镜像,那必定是以一个镜像为基础,在其上进行定制。就像咱们以前运行了一个 nginx 镜像的容器,再进行修改同样,基础镜像是必须指定的。而 FROM 就是指定 基础镜像,所以一个 Dockerfile 中 FROM 是必备的指令,而且必须是第一条指令shell
RUN
指令是用来执行命令行命令的。因为命令行的强大能力,RUN 指令在定制镜像时是最经常使用的指令之一。其格式有两种:ubuntu
RUN
<命令>,就像直接在命令行中输入的命令同样。刚才写的 Dockerfile 中的 RUN 指令就是这种格式。RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
RUN ["可执行文件", "参数1", "参数2"]
,这更像是函数调用中的格式。docker build [选项] <上下文路径/URL/->
docker build - < Dockerfile
或安全
cat Dockerfile | docker build -
实际上 Dockerfile
的文件名并不要求必须为 Dockerfile
,并且并不要求必须位于上下文目录中,好比能够用 -f ../Dockerfile.php
参数指定某个文件做为 Dockerfile
socket
docker build -f xxx -t xxx:version .
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
OPTIONS说明:函数
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
$ docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp以后的日志,或相对时间,如42m(即42分钟) --tail string 从日志末尾显示多少行日志, 默认是all -t, --timestamps 显示时间戳 --until string 显示自某个timestamp以前的日志,或相对时间,如42m(即42分钟)
查看指定时间后的日志,只显示最后100行:
$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
$ docker logs --since 30m CONTAINER_ID
查看某时间以后的日志:
$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID
查看某时间段日志:
$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID