学Docker(1)

docker用来解决什么样的问题?

当你在自己的计算机上实现了一个炫酷的功能,想发给你远方的小伙伴得瑟一下,却发现他的电脑因为操作系统的不同、配置环境有异或必要的软件、库、插件等缺失,小伙伴根本运行不起来你的代码。

这可怎么办呢?

别怕!docker来帮你!

docker为每一个应用提供了完全隔离的运行环境

镜像IMAGE

容器CONTAINER

仓库REPOSITORY,可以上传push自己做好环境的Docker上去,也可以下载pull云端的镜像到本地。

以ubuntu15.10镜像创建一个新容器 ,-t 表示在新容器内指定一个伪终端或终端;-i 表示允许你对容器内的标准输入 (STDIN) 进行交互。回车后我们进入ubuntu15.10的系统容器。

[*** ~]$ sudo docker run -i -t ubuntu15.10 /bin/bash

进入容器后,查看当前系统的版本信息,显示出linux version ....(gcc version ....)

root@*****/# cat /proc/version

查看当前目录下文件列表

root@*****/# ls

exit命令退出容器

root@*****/# exit

下面以一个进程的方式运行容器,-d 表示后台运行容器,并返回容器的ID,此时输出的一串字符为容器的ID,具有唯一性。用ps命令查看容器运行情况发现容器已经在运行中。若查不到,则尝试ps -a命令查看所有容器,可看到容器已经建立,此时说明容器建立成功但未运行。-l:查询最后以此创建的容器。

ps命令的输出为CONTAINER ID:容器ID;IMAGE:使用的镜像; COMMAND:启动容器运行的命令;CREATED:容器的创建时间; STATUS:容器状态(created已创建;restarting重启中;running/up运行中;removing迁移中;paused暂停;exited停止;dead死亡);PARTS:容器端口信息和使用的连接类型(tcp/udp);NAMES:自动分配的容器名称。

[*** ~]$ sudo docker run -d ubuntu15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

用stop来停止容器工作,运行结束后再用ps查看容器的运行情况时发现此容器已经停止运行了。

root@*****/# docker stop ***

启动容器run

进入容器attach退出会导致容器停止/exec退出不会导致容器停止

退出容器ctrl+P+Q/exit

停止容器stop

root@*****/# docker run -it containerID /bin/bash
root@*****/# docker restart containerID
root@*****/# docker attach containerID
root@*****/# docker exec -it containerID /bin/bash
root@*****/# docker stop containerID

导出容器,把容器快照到本地文件ubuntu.tar

导入容器,从容器快照文件ubuntu.tar中再导入为镜像test/ubuntu:v1;也可以指定一个URL或目录。

root@*****/# docker export containerName > ubuntu.tar
root@*****/# cat docker/ubuntu.tar | docker import - test/ubuntu:v1
root@*****/# docker import http://****

删除容器,-f:强制删除

root@*****/# docker rm -f containerName

运行一个web应用,尝试使用docker创建一个web应用程序,我们在docker容器中运行一个Python Flask应用来运行一个web应用。-P:将容器内部使用的网络端口随机映射到我们使用的主机上。

root@*****/# docker pull training/webapp
root@*****/# docker run -d -P training/webapp python app.py

  -p 主机端口 > 容器端口

容器的端口映射到主机上

访问容器中程序时用主机ip地址:端口号

也可以用-p设置端口的映射关系,容器内部的5000端口映射到主机的3245端口上。port指令可以查看制定容器的某个确定端口映射到主机的端口号

root@*****/# docker run -d -p 3245:5000 training/webapp python app.py
root@*****/# docker port containerName

查看容器内部运行程序

root@*****/# docker top containerName

使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。

容器名字在创建时会自动命名,也可以使用--name标识来命名容器--name SetName 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值