五分钟快速入门 实战 Docker,工作这些命令就够用了
现在很多公司项目部署都是采用K8S docker容器方式,出门面试被问的概率极大,如果被面试官问docker相关知识点直接懵逼,那么基本就是被pass了,除非其他方面技术过硬。所以这种相对前沿的技术,就算达不到精通的程度,起码还是要了解基础理论和操作
一.安装docker
Docker要求运行在Centos 7上,要求系统为64位,系统内核版本3.10以上
-
uname -an
查看当前系统版本 -
yum -y install docker
下载安装docker -
service docker start
启动docker服务 -
docker version
检查docker是否安装成功
当看到下图的信息,就是表示本机docker已经安装成功,很简单
在这里插入图片描述
二.镜像操作
创建容器要以镜像为基础,所以先讲下docker镜像的操作
搜索镜像
docker images ll
查看下本机的是否已经有了镜像
目前机器里还没有镜像,去Docker Hub下载(镜像还可自定义,这里就不细说了)
docker search java
,还能指定具体的版本进行下载,
例如:docker search Ubuntu:1.2.5.4,可以进行搜docker Hub 会列出很多镜像
在这里插入图片描述
下载镜像
docker pull docker.io/nginx
进行下载
下载到本地的镜像要比docker Hub上搜索出来的要大,因为下载过程中自动解压了,在查看镜像列表就有了刚才下载的镜像
列表包含了仓库名,版本标签,镜像ID,创建时间以及所占用的空间
在这里插入图片描述
删除镜像
删除没用的镜像docker rmi 镜像id
在这里插入图片描述
三.容器的操作
前边我们已经下载好了Nginx的镜像,接下来我们就创建一个只有Nginx应用的容器
docker run -i -t /bin/bash
-i
:标准输入给容器
-t:
分配一个虚拟终端
/bin/bash:
执行bash脚本
docker run -idt --name container_nginx -p 8080:80 docker.io/nginx
启动一个使用镜像docker.io/nginx
,名字container_nginx
的容器,-p 8080:80
表示将容器的80端口映射到主机的8080端口,这样我们只要访问主机的8080端口就可以访问到容器的服务了。
注意:name
前面是两个-
, 端口前面有-p
, docker.io/nginx
是镜像名,8080
是主机的端口,80
是Nginx应用的端口
主机上的一个端口只能映射一个容器端口,不可以多个容器端口对应一个主机端口(如果容器安装的centos类的系统,那么容器端口随便设定,但如果容器内只是单纯的应用,那么容器端口要是应用自身的端口)
在这里插入图片描述
这样我们就创建并启动了一个容器!
exit
退出容器
docker ps
查看运行中的容器
docker ps -a
查看运行中和非运行中的所有容器
docker exec -it container_nginx /bin/bash
进入容器如果容器还未启动 执行
docker start container_nginx
进入容器后启动Nginx
whereis nginx 找Nginx的启动目录
[root@iz2zehzeir87zi8q99krk1z ~]# docker start container_nginx container_nginx [root@iz2zehzeir87zi8q99krk1z ~]# docker exec -it container_nginx /bin/bash root@84683e425116:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@84683e425116:/# /usr/sbin/nginx
此时在浏览器访问 http://51.110.218.9:8080/ 就可以直接访问容器内的Nginx
在这里插入图片描述
如果访问不成功,可能是主机端口的防火墙开着,执行下边的命令关闭
/ sbin / iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
由于我用的阿里云服务器,所以需要在阿里云把8080端口开放
在这里插入图片描述
删除容器
容器删除之前先将容器停止
docker stop container_nginx
或者是容器的id
docker rm -f container_nginx
容器删除
docker start 与 docker run 的区别
docker start name
启动一个已经创建的容器
docker run
创建并启动一个容器
docker run
命令其实是 docker create
和 docker start
的命令组合,先执行docker create
创建一个容器 再接着docker start
启动
主机和容器文件相互复制
从主机复制到容器 sudo docker cp host_path containerID:container_path 从容器复制到主机 sudo docker cp containerID:container_path host_path
请注意,以上这两个命令都是在主机中执行的,不能再容器中执行
docker cp container_nginx:/usr/local/xin.txt /usr/local/software/ 容器向主机复制文件 docker cp /usr/local/xinzhifu.txt container_nginx:/usr/local/ 主机向容器复制文件
这样一个基础的docker容器就创建完了 。。。。。。。。。。。。
反过来大家再看一看docker的容器与镜像的区别 https://www.cnblogs.com/linjiaxin/p/7381421.html
那么其实镜像与容器的本质区别并不大,那么镜像可以生成容器 ,容器是否可以做成镜像呢?
docket commit container_nginx image_nginx:v1
在这里插入图片描述
container_nginx
容器名
image_nginx:v1
自己起一个镜像的名字:版本号
这样做有什么好处呢?
例如:A、B两台机器都想安装redis,A机器上创建容器并在容器中做好redis的一切配置,让后将这个容器docker commit 成镜像image_redis,B机器也想要安装redis,直接用镜像image_redis创建容器就行了,docker就是做这样一劳永逸的事情。
而且传统方式得在每台机器上安装配置redis非常麻烦
四.镜像的导入与导出
镜像压缩打包 (主机上进行操作),有两种方式 docker save
与 docker load
和 docker export 与 docker import
docker save nginx | gzip > nginx_xin_image.tar.gz 将现有的镜像压缩打包 docker load -i nginx_xin_image.tar.gz 压缩的镜像解压 docker images 进行查看
docker save
是直接将镜像进行打包 docker save <镜像名>或<镜像id>
docker export container_nginx> nginx_image.tar cat nginx_image.tar | sudo docker import - nginx_image:import
docker export
是直接将容器进行打包 docker export <容器名>或<容器id>
需要注意两种方法配套的,切不可混用。虽然导入导出时没问题,但是在创建容器时候会报错
如果使用import导入save产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,
会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。
类似,使用load载入export产生的文件,也会出现问题。
先写到这,文章略显粗糙,希望对您有一点用,学无止境加油!
整理了几百本各类技术电子书,有需要的同学公号[ 程序员内点事 ]内回复[ 666 ]自取。技术群快满了,想进的同学可以加我好友,和大佬们一起吹吹技术。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(第一篇)如何搭建符合企业数字化电商解决方案之理解&建议
1. 平台业务场景总览 将整合各品牌线上、线下资源业务运营,推动本土化业务能力提升,重点是在于前台客户购物/接触站点、中台的业务管理与运营、后台的供应链管理。 2. 以消费者为核心,设计本土化业务流程与系统功能 触手可及: 多元化购物:一切以消费者为中心,通过多元化购物建设在各个入口构建消费者互动场景(力报入口),消费者自主选择最为方便、有效的购物渠道。 体验一致:消费者通过多元化购物感受到的品牌形象是一致的,购物渠道协助共赢,以整体价值最大化为目标进行本土业务建设和运营。 消费者运营: 行为挖掘:通过新的技术手段,发掘消费者个人偏好、特征和在购买全过程中的行为数据,了解其购物体验,改进商品、陈列(页面)、价格等。 整合分析:整合消费者线上线上、企业内外的大量数据,认识同一个消费者,并对其购买行为进行综合分析,整合消费者画像。 立体认知:未来通过对消费者关系、圈子、社交媒体的识别,在消费环境以外对其做更为立体的认知,更为准确地理解消费者需求。 持续创新: 平台强健,模块清晰:综合行业通行方案架构和新技术,构建强健的基础信息平台;根据核心业务主线,清晰切分系统功能模块且松耦合,提高系统稳...
- 下一篇
深度学习工具库 OpenVINO 英特尔发行版更新,简化开发
近日,Intel® Distribution of OpenVINO™工具套件发布 2021.3 新版本。 OpenVINO 是英特尔在 2018 年发布的开放视觉推理和神经网络优化工具包,包括 OpenVINO 工具包社区开源版,和 Intel Distribution of OpenVINO 工具包(英特尔发行版)。 2018 年 5 月 16 日,英特尔高级副总裁兼物联网(IoT)集团总经理 Tom Lantzsch 宣布:英特尔将用视觉智能改变物联网行业,同时发布了 OpenVINO 工具包。Lantzsch 表示,彼时英特尔观察到全球物联网市场显著增长,部分原因正是视觉应用,尤其是 AI 视觉应用急剧增长。具体包括应用在产品装配线上查找产品缺陷、管理零售库存,确定偏远地区设备维护需求等等……这些应用场景中都需要高分辨率相继,并产生出大量需要汇总和分析的数据。 鉴于数据的迅猛增长,英特尔发布 OpenVINO™ 工具包,旨在在边缘快速跟踪高性能计算机视觉和深度学习推理应用程序的开发。 发展至今,OpenVINO™ 可帮助开发人员快速创建功能强大的计算机视觉应用程序,支持在边缘进...
相关文章
文章评论
共有0条评论来说两句吧...