docker基本操作
2. 实战案例——Docker基本操作Docker基本操作-实操.mp4
注意:此实验确保可以上网。
2.1 查看镜像列表
可以使用docker images命令来列出本地主机上的镜像,命令和结果如下所示。
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 3218b38490ce 3 weeks ago 516MB
httpd latest d3017f59d5e2 2 years ago 165MB
busybox latest 020584afccce 2 years ago 1.22MB
nginx latest 540a289bab6c 2 years ago 126MB
redis alpine 6f63d037b592 2 years ago 29.3MB
python 3.7-alpine b11d2a09763f 2 years ago 98.8MB
<none> <none> 4cda95efb0e4 2 years ago 80.6MB
centos latest 0f3e07c0138f 2 years ago 220MB
registry latest f32a97de94e1 2 years ago 25.8MB
swarm latest ff454b4a0e84 3 years ago 12.7MB
httpd 2.2.32 c51e86ea30d1 4 years ago 171MB
httpd 2.2.31 c8a7fb36e3ab 5 years ago 170MB
各个选项参数如下所示:
● REPOSITORY:表示镜像的仓库源。
● TAG:镜像的标签。
● IMAGE ID:镜像ID。
● CREATED:镜像创建时间。
● SIZE:镜像大小。
同一仓库源可以有多个TAG,代表这个仓库源的不同个版本。例如http仓库源里有2.2.31、2.2.32等多个不同的版本,可以使用REPOSITORY:TAG命令来定义不同的镜像。
例如,要使用版本为2.2.31的http镜像来运行容器,命令和结果如下所示。
[root@master ~]# docker run -i -t -d httpd:2.2.31 /bin/bash
d7a480c46a95f598284e55698dc2d3b7cec41c143df96a19f53380afd7676563
参数说明如下所示:
● -i:交互式操作。
● -t:终端。
● -d:后台运行。
● httpd:2.2.31:镜像名,使用https:2.2.31镜像为基础来启动容器。
● /bin/bash:容器交互式Shell。
如果要使用版本为2.2.32的http镜像来运行容器时,命令和结果如下所示。
[root@master ~]# docker run -i -t -d httpd:2.2.32 /bin/bash
6c7d63383bfd4fdec16891fb8bc8ffe2a4f465efb82349af321c2c8b0667c009
如果不指定镜像的版本标签,则默认使用latest标签的镜像。
2.2 获取镜像
当本地主机上使用一个不存在的镜像时,Docker会自动下载这个镜像。如果需要预先下载这个镜像,可以使用docker pull命令来下载,语法如下所示。
# docker pull [OPTIONS] NAME[:TAG|@DIGEST]
参数OPTIONS说明如下:
● -a:拉取所有tagged镜像。
● --disable-content-trust:忽略镜像的校验,默认开启。
例如,需要下载一个busybox镜像,可以使用docker pull命令下载该镜像。
[root@master ~]# docker pull busybox:latest
latest: Pulling from library/busybox
e5d9363303dd: Pull complete
Digest: sha256:c5439d7db88ab5423999530349d327b04279ad3161d7596d2126dfb5b02bfd1f
Status: Downloaded newer image for busybox:latest
2.3 查找镜像
查找镜像一般有两种方式,可以通过Docker Hub(https://hub.docker.com/)网站来搜索镜像,也可以使用docker search命令来搜索镜像。其语法如下所示:
# docker search [OPTIONS] TERM
参数OPTIONS说明如下:
● --automated:只列出automated build类型的镜像。
● --no-trunc:显示完整的镜像描述。
● --filter=stars:列出收藏数不小于指定值的镜像。
例如,需要一个Java镜像时,可以使用docker search命令搜索Java来寻找适合的镜像。
[root@master ~]# docker search --filter=stars=10 java
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
node Node.js is a JavaScript-based platform for s… 11015 [OK]
tomcat Apache Tomcat is an open source implementati… 3231 [OK]
openjdk OpenJDK is an open-source implementation of … 3110 [OK]
java DEPRECATED; use "openjdk" (or other JDK impl… 1976 [OK]
ghost Ghost is a free and open source blogging pla… 1468 [OK]
couchdb CouchDB is a database that uses JSON for doc… 456 [OK]
jetty Jetty provides a Web server and javax.servle… 380 [OK]
amazoncorretto Corretto is a no-cost, production-ready dist… 181 [OK]
groovy Apache Groovy is a multi-faceted language fo… 122 [OK]
lwieske/java-8 Oracle Java 8 Container - Full + Slim - Base… 50 [OK]
nimmis/java-centos This is docker images of CentOS 7 with diffe… 42 [OK]
fabric8/java-jboss-openjdk8-jdk Fabric8 Java Base Image (JBoss, OpenJDK 8) 29 [OK]
timbru31/java-node OpenJDK JRE or JDK (8 or 11) with Node.js 12… 19 [OK]
fabric8/java-centos-openjdk8-jdk Fabric8 Java Base Image (CentOS, OpenJDK 8, … 14 [OK]
frekele/java docker run --rm --name java frekele/java 12 [OK]
参数说明如下所示:
● NAME:镜像仓库源的名称。
● DESCRIPTION:镜像的描述。
● OFFICIAL:是否是Docker官方发布。
● STARS:类似GitHub里面的STARS,表示点赞、喜欢的意思。
● AUTOMATED:自动构建。
2.4 删除镜像
镜像删除使用docker rmi命令,语法如下所示:
# docker rmi [OPTIONS] IMAGE [IMAGE...]
参数OPTIONS说明如下:
● -f:强制删除。
● --no-prune:不移除该镜像的过程镜像,默认移除