学习目标
-
Docker常用命令
-
Docker File
1.Docker常用命令
1.1 镜像命令
1.1.1 检索
语法:IMAGE处写镜像名
docker search [IMAGE]
案例:
[root@localhost ~]# docker search tomcat NAME DESCRIPTION STARS OFFICIAL tomcat Apache Tomcat is an ... 2823 [OK] tomee Apache TomEE is an ... 82 [OK] dordoka/tomcat Ubuntu 14.04, Tomcat 8 ba... 55 bitnami/tomcat Bitnami Tomcat Docker Image... 35
1.1.2 拉取
从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。如果不知道镜像版本,可以去hub.docker.com 搜索对应镜像查看。
语法:
docker pull IMAGE:TAG
案例:
[root@localhost ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat 647acf3d48c2: Pull complete b02967ef0034: Pull complete e1ad2231829e: Pull complete 5576ce26bf1d: Pull complete 26518d6c686a: Pull complete cdb1f4e0dbfd: Pull complete 1d872b5136cc: Pull complete 0b9db4d94c97: Pull complete 03ee64d25ffd: Pull complete 45a601314df9: Pull complete Digest: sha256:93ff3bc7fb766a9bb5bb0d1f925f9d8795594d87e8365164908ddddcdaa75ff4 Status: Downloaded newer image for tomcat:latest [root@localhost ~]# docker pull centos Using default tag: latest latest: Pulling from library/centos Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 Status: Image is up to date for centos:latest docker.io/library/centos:latest
1.1.3 列表
列出本地主机上的镜像
语法:
docker images
案例:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat latest 904a98253fbf 12 days ago 680MB redis 3.0 c44fa74ead88 4 years ago 91.6MB
1.1.4 删除
使用 docker rmi 命令删除镜像。
语法:
docker rmi IMAGE[:tag]
案例:
[root@localhost ~]# docker rmi tomcat Error: No such image: tomcat [root@localhost ~]# docker rmi centos Untagged: centos:latest Untagged: centos@sha256:93ff3bc7fb766a9bb5bb0d1f925f9d8795594d87e8365164908ddddcdaa75ff4 Deleted: sha256:904a98253fbf7ce6ff0d5410387256c5fe4eedc5ff2fe130c821b6522558b5bf Deleted: sha256:206994dfd94922826065d850b959c68deeef9095ca9d5bd557b85f87bf589b51 Deleted: sha256:69f5160bcb0daf65f1fbd50300e84e743854a4444d8f4115882d3e58f7d3a9c6 Deleted: sha256:b329f444a8ff570c3e74e5ba117a46fea81c66cf7edd6702983ac3f5909f9036 Deleted: sha256:2d7550a5b4ce1c6e2e3d20d0128aa172d07f185885e0b1d65e35e6a29dff5f53 Deleted: sha256:64b6542ad739abd61f08e686b94ced8a1f1009b692c2d1a9a488e573bf8f533a Deleted: sha256:c33ddecc5693370b90d554d2d51e988f2dc9bd1e8b06bc9a402221cd8e4d2bfa Deleted: sha256:d7f374dbcf316119a8cc9c224fdd46b1fcce379e960fb156090494c2bcbadfd7 Deleted: sha256:553dd3d24238e8d51283a8979144ceaa3115a38055b9e6293bdc68b69bcb2c45 Deleted: sha256:517f7948bc279b5f35c839a4979fc3172ca93c1a0d5821e4c23d59c601d62319 Deleted: sha256:a36ba9e322f719a0c71425bd832fc905cac3f9faedcb123c8f6aba13f7b0731b
1.2.容器命令
1.2.1.新建并启动容器
语法:
docker run [options] IMAGE[:TAG]OPTIONS说明:有些是一个减号,有些是两个减号
--name:为容器指定一个名称
-p:指定端口映射,hostPost:containerPort
-d:后台模式运行容器
案例:
[root@localhost ~]# docker run tomcat ... ... [root@localhost ~]# docker run --name tomcat_1 -p 8081:8080 tomcat ... ... [root@localhost ~]# docker run --name tomcat_2 -p 8081:8080 -d tomcat 93de8d28eb0dda52bf161be70510b189b6e0babdb430dd0636fddf45a78f1d71 [root@localhost ~]#
1.2.2.列出启动容器
语法:
docker ps [options]
OPTIONS说明:
-a :列出当前所有正在运行的容器+历史上运行过的
[root@localhost ~]# docker ps [root@localhost ~]# docker ps -a
1.2.3.停止容器
语法:
docker stop CONTAINER NAME 或 docker kill CONTAINER NAME #不推荐使用,容易造成容器服务不正常关闭,影响后续使用。
[root@localhost ~]# docker stop tomcat_1 mysql_1 #速度慢 [root@localhost ~]# docker kill tomcat_1 mysql_2 #速度快
1.2.4.启动容器
语法:
docker start CONTAINER NAME
例如:
[root@localhost ~]# docker start tomcat_1 tomcat_1
1.2.5.删除容器
语法:
docker rm CONTAINER NAME
例如:
[root@localhost ~]# docker rm tomcat_1 tomcat_1
1.2.6.与运行中的容器交互
语法:
docker exec [options] CONTAINER NAME [command]
exec说明:
在运行中的容器中执行命令
OPTIONS说明:
-i:以交互模式运行容器,通常与-t 连用
-t:为容器重新分配一个伪终端,通常与-i 连用
command说明:
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,用来解释执行linux指令
案例:
[root@localhost ~]# docker run -t --name centos_1 centos:7 [root@9f9e69a704d3 /]# pwd #命令不起作用 [root@localhost ~]# docker run -i --name centos_5 centos:7 #连终端都没有 [root@localhost ~]# docker exec -it tomcat /bin/bash root@93de8d28eb0d:/usr/local/tomcat# pwd /usr/local/tomcat root@93de8d28eb0d:/usr/local/tomcat# ls -l total 132 -rw-r--r--. 1 root root 18994 Nov 9 22:12 BUILDING.txt -rw-r--r--. 1 root root 6210 Nov 9 22:12 CONTRIBUTING.md -rw-r--r--. 1 root root 60269 Nov 9 22:12 LICENSE -rw-r--r--. 1 root root 2333 Nov 9 22:12 NOTICE -rw-r--r--. 1 root root 3372 Nov 9 22:12 README.md -rw-r--r--. 1 root root 6905 Nov 9 22:12 RELEASE-NOTES -rw-r--r--. 1 root root 16517 Nov 9 22:12 RUNNING.txt drwxr-xr-x. 2 root root 4096 Nov 18 14:49 bin drwxr-xr-x. 1 root root 22 Dec 1 07:41 conf drwxr-xr-x. 2 root root 4096 Nov 18 14:49 lib drwxrwxrwx. 1 root root 80 Dec 1 07:41 logs drwxr-xr-x. 2 root root 159 Nov 18 14:49 native-jni-lib drwxrwxrwx. 2 root root 30 Nov 18 14:49 temp drwxr-xr-x. 2 root root 6 Nov 18 14:49 webapps #webapps是空目录 drwxr-xr-x. 7 root root 81 Nov 9 22:12 webapps.dist drwxrwxrwx. 2 root root 6 Nov 9 22:12 work root@93de8d28eb0d:/usr/local/tomcat# rm -rf webapps #删除webapps root@93de8d28eb0d:/usr/local/tomcat# mv webapps.dist webapps #重命名webapps.dist root@5410e26ca6fb:/# exit exit
1.2.7.查看容器日志
语法:
docker logs CONTAINER NAME
案例:
[root@localhost ~]# docker logs tomcat_2