(二)Docker基本命令&&部署测试

文章目录

  • 一、镜像基本操作命令
  • 二、容器基本操作命令
  • 三、其他常用命令
  • 四、部署测试
    • 1.在Docker上部署Nginx
    • 2.在Docker上部署Tomcat

一、镜像基本操作命令

1.查看镜像
docker imagesdocker image ls 列出所有的镜像

可选参数:

  • -a,-all:列出所有镜像
  • -q, -quiet:只显示镜像的id

可以同时使用:
docker image ls -aq

2.搜索镜像
docker search [镜像名] 搜索镜像,也可以去docker hub上搜索镜像
可选参数:

  • –filter 过滤条件
  • -f 过滤条件
    docker search [镜像名] --filter=stars=8888docker search [镜像名] -f=stars=8888 搜索stars数目大于8888的镜像

3.下载镜像
docker pull [镜像名]:[tag]
例:
docker pull mysql:5.7 下载5.7版本的mysql镜像
如果不指定tag,则默认下载最新版(latest)的
(二)Docker基本命令&&部署测试_第1张图片
蓝框中是该镜像在仓库中的真实地址,也可以使用此地址代替镜像名进行下载。

可以看到红框中分为了很多个文件下载,因为不同版本的镜像很多内容都是相同的,所以下载不同版本的镜像不需要下载整个镜像,只下载不同的部分就行了。这里再下载一下最新版的mysql试试:
(二)Docker基本命令&&部署测试_第2张图片
这里看到重复的文件就不会再下载了。

4.删除镜像
docker rmi [镜像名]
docker rmi [镜像id]
可选参数: -f :强制删除

例:

docker rmi -f [镜像id] [镜像id] ...
docker rmi -f [镜像名] [镜像名] ...
docker rmi -f $(docker image ls -aq) # 删除全部容器

5.提交镜像

docker commit -a="wzh" -m="add apps" 66a13c3c63d8 new_tomcat:1.0

在这里插入图片描述
docker image ls已经可以看到了:
在这里插入图片描述
这样就生成了一个新的镜像。

二、容器基本操作命令

1.根据镜像新建容器并启动
docker run [镜像名]
可选参数:

--name # 启动的容器名字
-d # 后台方式运行
-it # 使用交互方式运行,进入容器查看内容
-p # 指定容器的端口 -p 8080 或 -p 8080:8080
	-p ip:主机端口:容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P # 使用随机端口

例如:

docker run -it centos /bin/bash # 进入容器内的centos

2.退出容器

exit # 停止容器并退出容器
Ctrl + P + Q # 退出容器但不停止容器

3.列出容器

docker ps # 列出正在运行的容器
docker ps -a # 列出运行过的容器
docker ps -n=个数 # 列出最近创建的几个容器
docker ps -q # 只显示容器的id
docker ps -aq # 列出所有容器的id

4.删除容器

docker rm [容器id] # 删除容器;运行中的容器不能删除,需要加-f强制删除
docker rm -f $(docker ps -aq) # 强制删除所有容器
docker ps -aq |xargs docker rm # 删除所有的容器

5.启动、重启、停止容器

docker start [容器id] # 启动一个容器
docker restart [容器id] # 重启一个容器
docker stop [容器id] # 停止一个容器
docker kill [容器id] # 强制停止一个容器

三、其他常用命令

1.后台启动容器

docker run -d centos # 通过此种方式启动centos后,发现centos停止运行了。
# 常见的坑:
# docker容器要使用后台运行,必须要有一个前台进程。docker发现没有前台进程,会自动停止
# 容器启动后若自身未提供服务会立即停止

2.查看日志信息

docker logs -tf --tail 20 [容器id]
-tf # 显示日志
--tail 20 # 显示最近的20条日志

3.查看容器中的进程信息

docker top [容器id]

4.查看容器/镜像的元数据

docker inspect [容器id/镜像id]

5.进入正在运行的容器

# 容器一般以后台方式运行,需要进入容器修改配置等
docker exec -it [容器id] bin/bash # 进入容器后开启新终端
docker attach [容器id] # 进入正在运行的bash终端

6.从容器中拷贝文件到宿主机中(容器不一定要运行中)

docker cp [容器id][源路径] [目的路径]
docker cp 01234567:/home/xxx.txt /home

7.查看docker的容器运行状态

docker stats

8.查看所有的卷的情况

docker volume ls

9.查看docker镜像的构建历史过程

docker history [镜像名或镜像id]
docker history mycentos:0.1

10.推送自己的镜像到自己的docker hub

前提要有docker hub账号。

docker login -u username -p password
docker push [镜像名]:[Tag]

四、部署测试

1.在Docker上部署Nginx

docker search nginx # 搜索镜像
docker pull nginx # 下载镜像
docker image ls # 查看镜像,已经有nginx了
docker run -d --name nginx1 -p 3344:80 nginx # 通过nginx镜像启动一个名为nginx1的容器,将宿主机的3344端口映射到容器的80端口
docker ps # 此时能查到容器已经运行

在这里插入图片描述

curl 0.0.0.0:3344 # 通过curl工具发起请求,目的地址为本机,端口号3344,可以获取到返回值
curl localhost:3344 # 通过curl工具发起请求,目的地址为本机,端口号3344,可以获取到返回值

我的腾讯云服务器开放了3344端口,所以可以直接从公网上访问到容器内的nginx:
(二)Docker基本命令&&部署测试_第3张图片
现在进入容器并使用命令行交互:
docker exec -it nginx1 /bin/bash
停止容器:
docker stop 6d65dd98f7df

2.在Docker上部署Tomcat

 docker run -it --rm tomcat:9.0 # 以测试模式启动tomcat,用完stop后容器自动删除

启动成功(二)Docker基本命令&&部署测试_第4张图片
通过外网3355端口已经可以访问tomcat:
(二)Docker基本命令&&部署测试_第5张图片
docker exec -it tomcat1 /bin/bash # 进入容器
webapps目录中没有内容,因为阿里云镜像源使用最小镜像,没必要的文件都删掉了。对于tomcat,可以进webapps.dist目录将所有文件拷贝到webapps中,这样访问3355端口可以正常访问到tomcat的欢迎页面:
(二)Docker基本命令&&部署测试_第6张图片

你可能感兴趣的:(Docker学习笔记)