共计 4592 个字符,预计需要花费 12 分钟才能阅读完成。
Docker 容器是当初几天最新兴的技术之一。Docker 容器通常用于 CI / CD (Continuous Integration / Continuous Deployment 继续集成 / 继续部署) 平台中。容器是笨重的 VM (Virtual Machines 虚拟机),可利用根底管理程序资源 (例如 RAM,CPU,HDD 和内核)。
Docker 命令用于通过命令行治理容器和镜像。在本文中,咱们将介绍 Linux 中 20 个有用的 docker 命令示例。我假如您的 Linux 零碎上曾经装置了 docker,并且以后用户曾经增加到 docker 用户组中。
(1) 查看版本
在应用 docker 容器时,第一项重要的工作是晓得你的 docker 版本
$ docker --version
Docker version 20.10.12, build e91ed57
$
(2) 查看零碎范畴内信息
docker info 命令用于查看 docker 的根目录、操作系统版本、内核版本、docker 版本、RAM、CPU、docker 注册表等信息。
$ docker info
(3) 搜寻镜像
应用 docker search 命令,咱们能够从 docker hub 仓库中搜寻镜像。假如咱们想搜寻最新的 nginx 镜像
$ docker search nginx
(4) 下载镜像
docker pull 命令用于从 Docker hub 仓库中下载镜像
docker pull 命令总是尝试下载最新版本的镜像,假如我想下载最新版本的 nginx 镜像
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
5eb5b503b376: Pull complete
1ae07ab881bd: Pull complete
78091884b7be: Pull complete
091c283c6a66: Pull complete
55de5851019b: Pull complete
b559bad762be: Pull complete
Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
$
下载基于版本的特定镜像,假如咱们想下载 ubuntu:20.04 镜像
$ docker pull ubuntu:20.04
20.04: Pulling from library/ubuntu
08c01a0ec47e: Pull complete
Digest: sha256:669e010b58baf5beb2836b253c1fd5768333f0d1dbcb834f7c07a4dc93f474be
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04
$
(5) 查看已下载的镜像
家喻户晓,docker 的根目录是 /var/lib/docker,每当咱们应用 docker pull 命令下载镜像时,所有镜像都将保留在 docker 的根目录中。
要查看所有下载的 docker 容器镜像,请执行命令
$ docker image ls
or
$ docker images
(6) 运行容器
应用 docker run 命令启动容器,假如我想从 nginx 镜像 运行一个容器。
$ docker run -it -p 9000:80 --name=myapp nginx
下面将运行一个名称为 myapp 的容器,咱们还设置了 PAT 规定,如果任何申请到 docker 主机上的 9000 端口,则该申请将被重定向到 myapp 容器的 80 端口。执行命令之后咱们间接取得了控制台,输出 exit 能够进行 / 敞开容器,如果想从容器中退出而不进行它,请输出 ctrl+p+q
当初你能够应用 curl 命令拜访 9000 端口上的 nginx 利用了
$ curl http://<Docker-Host-IP-Address>:9000/
(7) 拆散模式运行容器
咱们能够在 docker run 命令中应用 -d 选项以拆散模式运行容器。这里的拆散模式意味着咱们将在执行 docker run 命令后取得命令提示符。
$ docker run -it -d -p 9080:80 --name=myapp2 httpd
f7dc2ece64708a9de5e53f341b0c7d17ac9189fb7c99079ad8744348bc5a6faa
$
(8) 查看所有运行的容器
执行 docker ps 命令查看所有正在运行的容器
$ docker ps
To view all running along with exited or stopped containers, run
要查看所有的容器(包含退出或进行),请运行
$ docker ps -a
(9) 拜访容器控制台
应用 docker exec 命令拜访容器控制台
sysops@linuxtechi:~$ docker exec -it myapp /bin/bash
root@3d5a0eef3e7a:/#
输出 exit 退出控制台
(10) 启动,进行,重启和杀死容器
就像虚拟机一样,咱们能够启动、进行和重启 docker 容器。
进行运行的容器
$ docker stop myapp2
myapp2
重新启动容器
$ docker restart myapp2
myapp2
$
杀死容器
sysops@linuxtechi:~$ docker kill myapp2
myapp2
sysops@linuxtechi:~$
(11) 删除容器
Docker Container is removed or deleted using‘docker rm‘command.‘docker rm’will work only when docker is stopped / shutdown.
应用 docker rm 命令删除容器,仅当容器 进行 / 敞开时,docker rm 能力工作。
$ docker stop test-app
test-app
$ docker rm test-app
test-app
$
To remove a running container forcefully then use‘-f’option in docker rm command. Example is shown is below
应用 -f 选项强制移除一个正在运行的容器
$ docker rm -f nginx-app
(12) 删除镜像
就像容器一样,咱们也能够删除镜像。docker rmi 命令用于删除镜像。
假如咱们想要删除 ubuntu:20.04 镜像
$ docker rmi ubuntu:20.04
Untagged: ubuntu:20.04
Untagged: ubuntu@sha256:669e010b58baf5beb2836b253c14f7c07a4dc93f474be
Deleted: sha256:54c9d81cbb440897908abdcaa98674db831e40a66f704f
Deleted: sha256:36ffdceb4c77bf34325fb695e64ea447f629593310578d2
$
在下面的命令中,咱们能够应用镜像 id 来代替名称
$ docker rmi 54c9d81cbb44
(13) 保留和加载镜像
应用 docker save 命令,将镜像保留到 tar 文件
$ docker save nginx -o mynginx.tar
$ ls -l mynginx.tar
-rw------- 1 sysops sysops 145931776 Feb 5 10:30 mynginx.tar
$
应用 docker load 命令,从 tar 文件加载镜像
$ docker load -i mynginx.tar
Loaded image: nginx:latest
$
留神:当咱们想要将 docker 镜像从一个主机传输到另一个主机时,这些命令会变得很有用。
(14) 将文件 / 目录复制到容器
咱们能够应用 docker cp 命令将文件或目录从 docker 主机复制到容器中。
上面咱们将 mycode 目录复制到 myapp 容器中
$ docker cp mycode myapp:/tmp
(15) 查看镜像构建历史
镜像的历史记录是指在构建镜像时执行了哪些命令,咱们能够应用 docker history 命令来查看历史记录
$ docker history nginx
(16) 从容器中查看日志
咱们能够从容器中查看日志,无需登录,运行 docker logs 命令
$ docker logs myapp
应用 -f 选项查看流动日志
$ docker logs -f myapp
查看某容器最近 10 条日志
$ docker logs --tail 10 myapp
(17) 查看容器资源应用统计信息
应用 docker stats 命令查看所有容器的 CPU,内存和网络 I/O 状况
$ docker stats
查看特定容器的统计信息
$ docker stats myapp
资源应用统计信息,无实时流
$ docker stats --no-stream
应用 docker top 命令显示容器的运行过程
$ docker top myapp
(18) 查看容器 IP 地址
应用 docker inspect 命令显示容器底层信息。咱们能够通过 docker inspect 命令获取容器的 ip 地址
语法如下:
$ docker inspect -f‘{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}’<Container-Name>
实例如下:
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' myapp
172.17.0.2
$
(19) 构建镜像
docker 镜像是应用 docker build 命令构建的,要应用 docker build 命令,首先必须创立 Dockerfile。让咱们假如 Dockerfile 是在 mycode 文件夹下创立的,而后运行以下命令来构建镜像
$ cd mycode
$ docker build -t mynginx:v2 .
(20) 镜像标签
docker tag 命令用于为镜像设置标签
语法如下 :
$ docker tag source_image{:tag} target_image{:tag}
假如将源镜像 mariadb:latest 的标签设置为 mariadb:10.03
$ docker tag mariadb:latest mariadb:10.03
$ docker images | grep -i mariadb
mariadb 10.03 45a5a43e143a 3 days ago 410MB
mariadb latest 45a5a43e143a 3 days ago 410MB
$
如果心愿上传镜像到公有仓库,标签应加上仓库地址,如下所示:
$ docker tag mariadb:latest myregistry:5000/db/mariadb:10.03
应用 docker login 命令登录到公有仓库,运行 docker push 命令上传
$ docker push myregistry:5000/db/mariadb:10.03
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)