文章目录
一、Docker的简介
二、Docker组成部分
三、Docker的使用
1.使用容器
2.实例
一、Docker的简介
Docker 它是一个开源应用容器引擎,允许开发者将其应用程序打包并依赖于可移植的容器,然后发布到任何流行的容器中Linux或Windows虚拟化也可以在操作系统的机器上实现。容器完全采用沙箱机制,彼此之间没有接口。
以下是关于Docker思维导图:
二、Docker组成部分
一个完整的Docker由以下部分组成:
DockerClient客户端 Docker Daemon守护进程 Docker Image镜像 DockerContainer容器
三、Docker的使用
1.使用容器
在操作容器处理镜像问题
(1)操作容器 执行下列命令,操作第一个容器。
[root@master~]# docker run-it--rm-d-p 80:80 nginxlatest 5d42a9fafeb60064d3d9f764de57d2eb2b51f58b1d7blc37020674c1bc08e4bb
参数说明: -i:互动操作。 -t:终端。 -rm:容器退出后删除,避免浪费空间。 -p:端口映射。 ●-d:容器在后台运行。 其过程可简单描述为: ①下载Nginx镜像。 ②启动容器,将容器的80端口映射到宿主机的80端口。 当使用dockerrun创建容器时,Docker后台运行的标准流程如下: ①从公共仓库下载,检查当地是否有指定的镜像。 ②用镜像创建和启动容器。 ③分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。 ④将虚拟接口从宿主机配置的网桥接口连接到容器中。 ⑤配置一个地址池IP地址给容器。 ⑥执行用户指定的应用程序。 接下来,可以通过浏览器验证容器是否正常工作。在浏览器中输入地址http//hostIP验证
启动容器的语法如下: # docker start[CONTAINERID 例如,启动一切Docker容器: # docker start $(docker ps -aq)
(2)操作容器 列出操作中的容器。 # docker ps # docker container ls 列出所有容器(包括终止状态)。 # docker ps -a 查看具体容器的信息。
# docker inspect [container ID or NAMEST
检查容器资源的使用情况。 # docker stats [container ID or NAMES 查看容器日志。 # docker logs [OPTIONS][container ID or NAMES OPTIONS 说明: --details:显示更多的信息。 -f--follow:跟踪实时日志。 --sincestring:显示自某个timestamp后续日志,或相对时间,如 42分钟。 --tailstring:默认从日志末尾显示多少行日志?all。 -t,--timestamps:显示时间戳。 --untilstring:显示自某个timestamp以前的日志,或相对时间,如42分钟。 进入容器。 # docker exec-it[CONTAINER ID] bash 进入容器后,输入exit或者按Crtl C按键退出容器,示例代码如下: [root@master~]#docker exec-it 5d42a9fafeb6 bash root@5d42a9fafeb6:/#exit exit
(3)终止容器 删除终止状态的容器。 # docker rm[CONTAINER ID] 删除所有终止容器。 # docker container prune 删除未使用的数据卷。 # docker volume prune 在操作中删除容器。 # docker rm-f[CONTAINER ID] 批量停止所有容器。 # docker stop $(docker ps-aq) 批量删除所有容器。
# docker rm $(docker ps -aq) 终止容器过程,进入终止状态。 # docker container stop[CONTAINER ID(4)导入/导出容器 语法如下: # docker export[CONTAINER ID]>[tar file] 例如: root@master~]# docker export 5d42a9fafeb6>nginx.tar [root@master~]# 11 total 125320 -rw-r--r--1 root root 128326656 0ct 31 01:24 nginx.tar 同样,容器快照文件也可以导入镜像,语法如下, # cat [tar file]| docker import-[name:tag 例如:
[root@master~]# cat nginx.tardocker import-nginxtest sha256:c1668cd482c7e86a231f718d673c2c4a293ad75ea49ac3f3f4b75dfee42b3e2f [root@master~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx test c1668cd482c7 3 seconds ago 125MB nginx latest 540a289bab6c 8 days ago 126MB
使用dockerimport当命令导入容器快照到当地镜像库时,将丢弃所有历史记录和 元数据信息,即当时只保存容器的快照状态。
2.实例
查看镜像列表:
使用版本为2.2.31的http镜像操作容器:
强制删除本地镜像swarm :
检查操作中的容器:
检查所有容器
进入容器的两种方法(使用版本为2.2.31的http镜像操作容器):
使用镜像(busybox创建临时容器:
使用镜像(busybox创建一个一直在后台运行的容器:
暂httpd:2.2.32运行中的容器:
开启httpd:2.2.32运行中的容器 :
重启httpd:2.2.32运行中的容器:
创建一个nginx的容器,设置这个容器的参数,当容器因某种错误而停止运行时,能自动重启:
恢复暂停httpd:2.2.32运行中的容器:
删除某一个已经不运行的容器:
批量删除所有已经退出的容器:
参考图片:以上图片均为博主本人进行的实验
参考文档:百度
有什么问题欢迎提出