版权声明:猿友们共同进步。ps:博客中有不当之处,还请不吝指教。转载也请注明出处哈: https://blog.csdn.net/CSDN___LYY/article/details/83042592
一:容器的使用
-
使用容器我们可以通过Docker客户端进行操作,使用Docker命令我们可以看到所有的客户端命令
# docker //可以看到简洁版的
# man docker //可以看到该命令的详细解释
# docker command --help //详细了解command命令的用法
-
使用Docker运行一个web应用
# docker pull training/webapp
//载入镜像
# docker run -d -P training/webapp python app.py
//创建容器,后台运行web应用
# docker ps
//查看进程
# docker run -d -p 4999:5000 training/webapp python app.py
//使用-p参数设置端接口号,格式:4999(本地4999端口):5000(容器的5000端口,默认的python flask端口。python flask详情:https://blog.csdn.net/u012734441/article/details/62036503)
# docker port 容器Id或者容器名
//查看容器的端口
//参数:
* -d: 让容器在后台运行。
* -P: 将容器内部使用的网络端口映射到我们使用的主机上。
* -p: 修改本地映射的端口。
docker ps结果为:
可以看到ports字段,显示的为Docker的5000对应了本地的1024端口,我们在浏览器输入:”本地服务器ip:1024 “,就可以看到web运行的结果。
-
显示容器的程序日志、
# docker logs 容器Id或者容器名
//静态显示容器的运行日志
# docker logs -f 容器Id或者容器名
//动态显示容器的运行日志
-
查看容器内部运行的进程
# docker top 容器Id或者容器名
//显示容器内部运行的进程,显示结果如下:
UID PID PPID C STIME TTY TIME CMD
root 13096 13078 0 16:49 ? 00:00:00 python app.py
。。。。。。。
-
检查容器,显示容器的所有信息
# docker inspect 容器Id或者容器名
//显示Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。示例如下:
[
{
"Id": "b4e66581cadb896107f1e9edf036bf7174593f544b16f1ffddcd04b8532e2532",
"Created": "2018-10-12T08:49:26.027911855Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 13096,
"ExitCode": 0,
"Error": "",
"StartedAt": "2018-10-12T08:49:26.274568849Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:6fae60ef344644649a39240b94d73b8ba9c67f898ede85cf8e947a887b3e6557",
.....................
-
停止容器
# docker stop 容器Id或者容器名
-
启动与重启容器
# docker start 容器Id或者容器名
//启动已经被停止的容器
# docker restart 容器Id或者容器名
//重启正在运行的容器
# docker ps -l
//显示最后一个创建的容器
-
删除不需要的容器
# docker rm 容器Id或者容器名
//删除容器,注意:删除的容器必须是非运行状态的,否则会删除不成功报错,
二:镜像的使用
-
列出镜像列表
-
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
-
如果不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
-
docker images
####参数说明:
* REPOSITORY:表示镜像的仓库源
* TAG:镜像的标签
* IMAGE ID:镜像ID
* CREATED:镜像创建时间
* SIZE:镜像大小
-
获取新的镜像
-
在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
-
docker pull tomcat
#不指定镜像的tag便是下载最新的latest
docker pull tomcat:8
#指定镜像tag
-
查找镜像
-
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
-
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像
-
docker search httpd
###参数说明:
* NAME:镜像仓库源的名称
* DESCRIPTION:镜像的描述
* OFFICIAL:是否docker官方发布
-
创建镜像
####方式一:从已经创建的容器中更新镜像,并且提交这个镜像
##:需要有一个容器
docker run -t -i ubuntu:15.10 /bin/bash
##:在运行的容器内使用 apt-get update 命令进行更新
apt-get update
##:退出容器
exit命令 或者 ctrl + c
##:通过命令 docker commit来提交容器副本为新镜像
docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
* -m:提交的描述信息
* -a:指定镜像作者
* e218edb10161:容器ID
* runoob/ubuntu:v2:指定要创建的目标镜像名
##:查看提交的新镜像,创建新镜像完毕
docker images
####:方式二: 使用 Dockerfile 来创建一个新的镜像
请移步:https://blog.csdn.net/CSDN___LYY/article/details/83061188
-
设置(修改)镜像标签
-
使用 docker tag 命令,为镜像添加一个新的标签
-
docker tag 860c279d2fec runoob/centos:dev
##参数介绍:
* docker tag : 创建标签
* 860c279d2fec : 镜像的唯一ID
* runoob/centos:dev : 新的名称与标签
-
删除镜像
docker rmi <options> <imageID>or<imageName>
##参数options:
* -f :强制删除;
* --no-prune :不移除该镜像的过程镜像,默认移除;
-
查看镜像变动历史
docker history <options> <imageID>or<imageName>
##参数options:
* -H :以可读的格式打印镜像大小和日期,默认为true;
* --no-trunc :显示完整的提交记录;
* -q :仅列出提交记录ID。
-
镜像归档为tar文件
-
归档为文件后,便于对镜像进行迁移
-
docker save -o <filename.tar> <imageID>or<imageName>
##参数:
-o filename.tar: 指定输出到的文件
-
从tar文件导入镜像
docker import -m "new image" file_path
##参数:
* -c :应用docker 指令创建镜像;
* -m :提交时的说明文字;