一、Docker
#直接输入 docker 命令来查看到 Docker 客户端的所有命令选项
docker
# 深入的了解指定的 Docker 命令使用方法
docker command --help
二、Docker中镜像和容器的关系
先有的镜像,才能创建容器:在镜像的基础上创建一个容器
容器 = 镜像 + 可读写层
三、常用镜像操作命令
# 检索 docker search 关键字
docker search nginx
# 拉取镜像,:tag 是可选的,tag表示标签,多为软件的版本,默认是latest
docker pull 镜像名:tag
# 查看所有本地镜像
docker images
# 查看所有本地镜像包含历史
docker images -a
# 删除指定的本地镜像
docker rmi image-id
四、常用容器操作命令
# --name 指定容器名,可自定义,不指定自动命名
# -i 以交互模式运行容器
# -t 分配一个伪终端,即命令行,通常-it组合来使用
# -p 指定映射端口,讲主机端口映射到容器内的端口
# -d 后台运行容器
# -v 指定挂载主机目录到容器目录,默认为rw读写模式,ro表示只读
# /bin/bash是固有写法,作用是因为docker后台必须运行一个进程,否则容器就会退出,在这里表示启动容器后启动 bash。
# 使用ubuntu镜像创建容器
docker create -it ubuntu
# 运行
docker run --name 容器名 -i -t -p 主机端口:容器端口 -d -v 主机目录:容器目录:ro 镜像ID或镜像名:TAG
# 使用ubuntu镜像创建并启动容器,并进入该容器
docker run -it ubuntu /bin/bash
# 使用ubuntu镜像创建并启动容器,加了-d 默认不会进入该容器
docker run -itd --name ubuntu-test ubuntu /bin/bash
# 在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器。
# docker attach 容器ID或容器名:如果从这个容器退出,会导致容器的停止。
# docker exec:推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
# docker exec -it 容器ID或容器名 /bin/bash
# 退出该容器
exit
# 查看运行中的容器
docker ps
# 查看所有的容器
docker ps -a
# 启动容器
docker start 容器ID或容器名
# 停止运行中的容器
docker stop 容器ID或容器名
# 重启容器
docker restart 容器ID或容器名
# 删除容器
docker rm -f 容器ID或容器名
# 导出容器
docker export container_id > ubuntu.tar
# 可以使用 docker import 从容器快照文件中再导入为镜像,以下实例将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1
cat ubuntu.tar | docker import - test/ubuntu:v1
# 或者也可以通过指定 URL 或者某个目录来导入
docker import http://example.com/exampleimage.tgz example/imagerepo
# 清理掉所有处于终止状态的容器
docker container prune
# 查看日志
docker logs 容器ID或容器名
# 拷贝文件
docker cp 主机文件路径 容器ID或容器名:容器路径 #主机中文件拷贝到容器中
docker cp 容器ID或容器名:容器路径 主机文件路径 #容器中文件拷贝到主机中
# 获取容器元信息
docker inspect 容器ID或容器名
五、Docker生成镜像的两种方式
有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于一个基础镜像构建一个自己的镜像,两种方式:
- 更新镜像:使用 docker commit 命令
- 构建镜像:使用 docker build 命令,需要创建Dockerfile文件
1、更新镜像
先使用基础镜像创建一个容器,然后对容器内容进行更改,然后使用 docker commit 命令提交为一个新的 镜像(以tomcat为例)。
(1)根据基础镜像创建容器
docker run --name testTomcat -p 80:8080 -d tomcat
(2)修改容器内容
docker exec -it testTomcat /bin/bash
cd webapps/ROOT/
rm -f index.jsp
echo hello world! > index.html
exit
(3)提交为新镜像
docker commit -m="描述消息" -a="作者" 容器ID或容器名 镜像名:TAG
例: docker commit -m="修改了首页" -a="wx" testTomcat wx/tomcat:v1.0
(4)使用新镜像运行容器
docker run --name wanquan -p 8088:8080 -d wx/tomcat:v1.0
本地访问:
2、使用Dockerfile构建镜像
Dockerfile:Dockerfile 是构建Docker镜像的源代码。
- Docker可以通过读取Dockerfile中的指令来自动构建图像。
- Dockerfile是一个文本文档,它包含用户可以在命令行上调用的所有命令来组装一个映像。
- 使用docker构建,用户可以创建一个连续执行多个命令行指令的自动化构建。
Dockerfile传送:https://blog.csdn.net/wx2320061619/article/details/103726179