docker常用命令

小熊 Docker评论4,098字数 1715阅读5分43秒阅读模式

镜像操作

Docker 官方提供了一个公共的镜像仓库:Docker Hub,我们就可以从这上面获取镜像,获取镜像的命令: docker pull ,格式为:

$ docker pull [选项] [Docker Registry 地址[:端口]/]仓库名[:标签]
$ docker pull ubuntu:18.04

上面的命令中没有给出 Docker 镜像仓库地址,因此将会从 Docker Hub 获取镜像。而镜像名称是 ubuntu:18.04 ,因此将会获取官方镜像 library/ubuntu 仓库中标签为 18.04 的镜像。

查看本地已有镜像

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              18.04               775349758637        19 hours ago        64.2MB
busybox             latest              020584afccce        42 hours ago        1.22MB
hello-world         latest              fce289e99eb9        10 months ago       1.84kB

还可以给镜像重新打上一个 tag:

$ docker tag nginx nginx:test

还可以将镜像导出成一个独立的文件:

$ docker save nginx >/tmp/nginx.tar.gz
$ ls -la /tmp/nginx.tar.gz
-rw-r--r--. 1 root root 130066944 Nov  2 02:58 /tmp/nginx.tar.gz

运行容器

$ docker run -it --rm \
    ubuntu:18.04 \
    /bin/bash
  • -it :这是两个参数,一个是 -i 交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • --rm :这个参数是说容器退出后随之将其删除。默认情况下,退出的容器并不会立即删除,除非手动 docker rm 。我们这里只是执行个命令,看看结果,不需要保留结果,因此使用 --rm 可以避免浪费空间。
  • ubuntu:18.04 :这是指用 ubuntu:18.04 镜像为基础来启动容器。
  • bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell ,因此用的是 bash 。这里可以改成任何命令,比如 ls 就是在这个容器里执行 ls 命令。也可以执行脚本,例如 /bin/sh -c "while true; do echo hello world; sleep 1; done"
  • 如果加 -d 参数就是后台运行,不加就是前台运行, ctrl + cCtrl+d 退出容器

注意:如果后面接的指令瞬间就执行完了,那么容器就会停止,除非是长期指令,容器才会一直运行!比如刚刚说的

/bin/sh -c "while true; do echo hello world; sleep 1; done"

查看后台运行的容器在控制台打印的日志

docker logs

列出容器

查看当前系统中已经运行的容器,可以用如下命令:

$ docker ps

如果把已经退出的容器也列出来可以加上 -a 参数:

$ docker ps -a

删除容器

要删除或强制删除一个容器(包括已退出的)则可以使用如下命令:

# 根据容器ID强制删除容器
$ docker rm -f 2275424275b6

终止容器和启动容器

#终止的容器可以用docker ps -a 看到
$ docker stop 501f4d9538a0 
docker start [container ID or NAMES]

只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。

网络

查看ip、暴露端口

$ docker inspect webserver |grep IPAddress
            "SecondaryIPAddresses": null,
            "IPAddress": "172.17.0.4",
                    "IPAddress": "172.17.0.4",

我们在启动容器的时候添加了一个新的参数 -p 80:80 ,这个参数的意思是将宿主机的 8080 端口和容器的 80 端口进行绑定,这样我们就可以通过宿主机的 80 端口来访问容器服务了。

docker run --name webserver -d -p 80:80 nginx

摘录自(部分修改):https://www.qikqiak.com/k8strain/docker/basic/

weinxin
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
Docker最后更新:2020-8-31
小熊