Docker
安装Docker


获取所有镜像:
docker images

查看具体的镜像:
windows中的命令:
docker image ls | findstr hello-world
mac&linux的命令:
docker image ls | grep hello-world

查看镜像的详细的信息:
docker image inspect feb5d9fea6a5(镜像的ID信息)
查看所有镜像的详细信息:
docker image inspect $(docker images -q) #mac和linux的命令

仅仅展示精心的ID信息(image id)
docker images -q

docker pull centos:7.8.2003

获取docker的镜像后,就可以运行对应的docker的镜像信息了,运行的命令为run,具体指令总结如下:
• -it:开启交互式的命令
• --rm:容器退出时删除容器的记录信息
• --name:指定容器的名称
• -d:后台方式运行容器
#docker run ---》运行镜像
-it:交互式命令
--name:指定运行镜像名称
centos:7.8.2003:要被运行的镜像

一个镜像被运行后,后称为一个容器
linux --->主流的服务器,比如阿里云的服务器,操作系统基本都是Linux的
unix mac
windows
使用一个新的控制台,使用命令查看容器运行的记录:
docker ps -a
镜像每次运行一次,都会生成一个容器的记录信息
比如镜像被运行了N次,那么就会有N条容器的记录信息
docker stop 容器ID:停止容器
docker rm 容器ID

一、前提条件:镜像没有被运行
[root@wuyaShare ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
删除镜像:
1、依据镜像的名称删除
2、依据镜像的ID来删除
二、前提条件:正在运行中的镜像,需要删除,需要做的步骤具体为:
1、在容器中停止它的运行:docker stop 容器ID
2、在容器中删除它的记录:docker rm 容器ID
3、根据镜像的名字或者ID来删除该镜像
Docker rmi 镜像ID
Docker rmi 镜像名称

id

名字

导入导出
镜像导入导出的场景:
异地的办公模式,那么场景就是:异地的开发同学写完代码后,然后把自己的
应用程序打包成镜像,打包成镜像后,发送给测试同学,测试同学运行镜像(前
提是把镜像导入中docker中),镜像运行成功后,等于环境部署成功,可以测试
通许可以开始测试了。
开发同学操作:
1、写代码
2、写的代码打包成镜像
A、执行代码的依赖环境(比如写的代码需要在Linux上执行,那么就需要Linux的环境)
B、执行代码本身的环境(比如java的环境需要jdk)
3、把镜像导出
docker image save centos:7.8.2003(被导出的镜像) -o >/Users/liwangping/Desktop(导出的镜像被存储的目录)
4、发送给测试同学
测试同学操作:
1、接收开发发送的镜像
2、导入镜像到docker中
3、运行镜像
4、开始测试
导出命令:
docker image save hello-world:latest(被导出的镜像) -o /Users/liwangping/Desktop/hello.taz(导出的镜像在本本地存储的目录)

导入命令:
docker image load -i /Users/liwangping/Desktop/hello.taz(被导入的镜像存储目录)
#导入镜像成功后输出的信息
e07ee1baac5f: Loading layer 14.85kB/14.85kB
Loaded image: hello-world:latest

docker run 镜像名称 这个过程可以理解为:把镜像文件创建成docker容器的一部分,然后再进行启动。特别需要注意的是:
容器内的进程必须是前台运行状态,否则容器直接退出。还有一点特别需要提醒的是:docker run 镜像名 如果镜像文件在本地不存在,
就会在线去下载该镜像的资源信息,如:
docker run -it --rm centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a1d0c7532777: Pull complete
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
[root@5d97dbdba0cd /]# exit
exit
docker的容器启动成功后,使用docker ps -a可以查看容器的ID记录信息。

dockerhub;公有云的docker镜像托管平台
容器命令
在运行镜像中,后面需要带一些指令的信息,这些指令的信息具体汇总为如下:
• -d:后台运行
• -it:交互式命令
• --rm:容器挂掉后自动被删除
• --name:给容器起一个名字
• -p:端口映射
容器信息的查看:
#linux
docker ps -a | grep 容器ID
#windows
docker ps -a | findstr 容器ID
#查看容器的详细的信息
docker container inspect 容器ID

查看容器的日志步骤:
1、运行镜像
docker run -it --rm centos
2、查看运行中的容器的ID信息
docker ps -a
3、获取到容器的ID后,查看所有的日志信息
docker logs 容器ID
4、比如在Linux中安装vim的编辑器,安装的命令为:yum install -y vim,那么在容器的日志记录中也会实时的显示安装它的全部信息

docker logs -f 容器ID:查看实时的日志文件内容,如果想退出,就需要按ctrl+c
docker logs 容器ID:一次性查看所有的日志文件内容
docker logs 容器ID | tail -10:查看最新的10行日志文件(日志文件最后的内容)#仅仅适用于Linux的系统
docker logs 容器ID | head -10:查看日志文件最前面的10行

容器的提交解决了什么?
解决了容器中安装的环境,但是必须在容器退出前要进行提交,如果没有提交,那么退出后,安装的环境等于再次安装。
退出vim的步骤:
1、按下esc键
2、按下shift+:
3、:后面输入q!,按下回车键,就会退出
容器提交的步骤:
1、运行镜像,到容器后
2、在容器里面进行具体的操作(比如安装软件,比如搭建环境等等),但是容器千万不能退出
3、打开一个新的控制台,查看到容器的ID
docker ps -a
4、对容器进行提交
docker commit 容器ID 镜像新的名称 如下:
docker commit 1ec76b093759 centos_vim_mysql
sha256:845081b52332f6e6ba6809d06703691b57cdddff4c0c286825097187a6b86e9e
5、待容器提交成功后,之前的容器进行退出
6、查看所有的镜像,就会发现存在centos_vim_mysql的镜像
7、运行新的镜像文件,如:
docker run -it --rm centos_vim_mysql

docker image tag 003d0acb5726(镜像的ID) centos_vim(镜像的名称) #修改镜像的名称
1、如果经常名称是none ,那么就不会复制,直接把none的镜像名称修改为新的镜像名称
2、如果镜像名称不是none,那么在此修改,等价于复制、

1、获取nginx的镜像:docker pull nginx
2、端口映射:-p 80(宿主机的端口):80(容器里面的端口)
3、后台方式运行容器:
docker run -d -p 80:80 nginx
eede621c9dd01419b85c999dcacb6386790db9a2dbcc3287d020d3cd148738d6
4、查询容器的端口:docker port 容器的ID
docker port eede621c9dd0
80/tcp -> 0.0.0.0:80
5、下面演示容器的停止和启动
localhost:~ liwangping$ docker port eede621c9dd0
80/tcp -> 0.0.0.0:80
localhost:~ liwangping$ docker stop eede621c9dd0
eede621c9dd0
localhost:~ liwangping$ docker port eede621c9dd0
localhost:~ liwangping$ docker start eede621c9dd0
eede621c9dd0
localhost:~ liwangping$ docker port eede621c9dd0
80/tcp -> 0.0.0.0:80


浙公网安备 33010602011771号