docker命令详解
镜像下载
搜索镜像
docker search +镜像名字
#docker search centos
从 Hub中搜索符合条件的镜像
下载镜像
#docker pull +镜像名字
#docker pull centos
查看镜像
#docker images
开启⽹络转发功能(默认为开启状态)若⽆开启,可以使⽤以下命令开启
#vim /f
插⼊⼀条语句:net.ipv4.ip_forward=1
#sysctl -p // 使得语句⽣效
#cat /proc/sys/net/ipv4/ip_forward
若你的⽹络转发功能为开启,在连接docker时,会出现以下错误。导致docker容器中的镜像⽆法上⽹。
docker 平台使⽤命令
例1:运⾏⼀个 container并加载镜像centos,运⾏起来这个实例后,在实例中执⾏ /bin/bash命令 docker 的参数: run 运⾏ -t 以交互模式运⾏容器, -i 为容器重新分配⼀个伪输⼊终端 [root@break du]# docker images //查看当前下载的镜像 [root@break du]# docker run -it centos:latest /bin/bash //运⾏起来⼀个容器 [root@73fb5e288c8d /]# exit //退出当前容器
例2:在 container 中启动⼀个长久运⾏的进程,不断向stdin输出 hello。模拟⼀个后台运⾏的服务 docker命令参数: -d :后台运⾏容器,并且返回容器ID -c :后⾯跟着待完成的命令 [root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo hello ;sleep 1;done” #docker logs c4
765de4fa30 例3:杀死⼀个容器。 ⽐如:杀死⼀个正在后台运⾏的容器
[root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo hello ;sleep 1;done” //docker启动,模拟⼀个后台服务。 973835e1a37adacedce8850e688b9f2a0c7cf16690e8b3cbd83685086e97d1b1 [root@break du]# docker ps //列出所有正在运⾏中的镜像 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
973835e1a37a centos:latest “/bin/bash -c 'while…” 6 seconds ago Up 3 seconds jolly_davinci [root@break du]# docker kill 973835e1a37a //杀死⼀个正在后台运⾏的容器 973835e1a37a [root@break du]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 例4:启动、停⽌、重启 container容器实例 [root@break du]# docker run -d centos:latest /bin/bash -c “while true;do echo firends;sleep 3;done” //模拟⼀个后台运⾏的服务
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 [root@break du]# docker logs
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //查看⽇志 firends firends
[root@break du]# docker ps //列出正在运⾏的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de25c2541b2d centos:latest “/bin/bash -c 'while…” 20 seconds ago Up 19 seconds pedantic_colden [root@break du]# docker stop de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //停⽌⼀个容器
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 [root@break du]# docker ps //列出运⾏中的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@break du]# docker start
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 //启动⼀个容器
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 [root@break du]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de25c2541b2d centos:latest “/bin/bash -c
'while…” 55 seconds ago Up 5 seconds pedantic_colden [root@break du]# docker logs
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462 firends firends firends
[root@break du]# docker rm -f de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989a
ff009462 //删除容器
de25c2541b2deda1e2413855d7e88564ab6fb8936313e9ddae3a989aff009462
[root@break du]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker 镜像制作
1docker commit +ID/name
实例5:创建⼀个有apache的centos镜像 1使⽤docker commit +容器ID+新建的镜像名字 [root@break du]# docker run -it centos:latest /bin/bash [root@4b92f408db31 /]# yum -y install httpd
[root@break du]# docker commit 4b92f408db31 docker-centos:apache 2使⽤Dockerfile来创建⼀个含有apache的镜像
1. 创建⼯作⽬录
2. 编辑Dockerfile mkdir /docker-build cd /docker-build touch Docker-file 注意:make ⾃动化编译时,需要Makefile ⽂件,⽽⾃动化创建docker 镜像时,需要Docker-file
1
2
3
4
注释:
FROM centos:latest # FROM 基于哪个镜像
MAINTAINER # MAINTAINER 镜像创建者
RUN yum -y install httpd #RUN 安装软件⽤
ADD /usr/local/bin/start.sh
ADD index.html /var/www/html/index.html
ADD 将⽂件src拷贝到新产⽣的镜像的⽂件系统对应的路径dest。所有拷贝到新镜像中的⽂件和⽂件夹权限为0755,uid和gid为0
3. 创建start.sh和index.html
4.
使⽤build来创建image
docker 发布
⽅法:Save Image To TarBall
⽅法1:保存 Image 到 tar 包——将刚才做好的镜像打包。 语法:docker save -o 导出的镜像名.tar 本地镜像名:镜像标签 例如:FROM centos:latest MAINTAINER <break@du>RUN yum -y install httpd ADD start.sh /usr/local/bin/start.sh ADD index.html /var/www/html/index.html
1
2
34
5echo "/usr/sbin/httpd-DFOREGROUND" > start.sh chmod a+x start.sh echo "my test images" > index.html
1
23docker build -t docker-centos:apacheruning ./
1docker save -o docker-centos:running.tar docker-centos:apacheruning
1
docker load -i docker-centos:apacherunning.tar //导⼊本地镜像
docker优点
1.⼀些优势和VM⼀样,但不是所有都⼀样。
⽐VM⼩,⽐VM快,Docker容器的尺⼨减⼩相⽐整个虚拟机⼤⼤简化了分布到云和从云分发时间和开销。Docker启动⼀个容器实例时间很短,⼀两秒就可以启动⼀个实例。
2.对于在笔记本电脑,数据中⼼的虚拟机,以及任何的云上,运⾏相同的没有变化的应⽤程序,IT的发布速度更快。
Docker是⼀个开放的平台,构建,发布和运⾏分布式应⽤程序。
Docker使应⽤程序能够快速从组件组装和避免开发和⽣产环境之间的摩擦。
3.您可以在部署在公司局域⽹或云或虚拟机上使⽤它。
4.开发⼈员并不关⼼具体哪个Linux操作系统
使⽤Docker,开发⼈员可以根据所有依赖关系构建相应的软件,针对他们所选择的操作系统。
然后,在部署时⼀切是完全⼀样的,因为⼀切都在DockerImage的容器在其上运⾏。
开发⼈员负责并且能够确保所有的相关性得到满⾜。
5.Google,微软,亚马逊,IBM等都⽀持Docker。
docker打包镜像6.Docker⽀持Unix/Linux操作系统,也⽀持Windows或Mac
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论