docker的使用

docker利用容器来运行应用:docker容器是由docker镜像创建的运行实例。docker容器类似虚拟机,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

容器:运行程序

镜像:安装程序

仓库:存储镜像

 

1. 在centos上使用docker

yum install -y docker service docker start /stop/restart
sudo docker run ubuntu:15.10 /bin/echo "helloworld"
  • docker: Docker 的二进制执行文件。
  • run:与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo "Hello world": 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

 

docker run -i -t ubuntu:15.10 /bin/bash
  • -t:在新容器内指定一个伪终端或终端。
  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

进入 一个ubuntu15.10的容器 exit/ctrl+d: 退出

 

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

 

长字符串是容器ID

docker ps

查看容器是否运行

CONTAINER ID:容器ID

NAMES:自动分配的容器名称

在容器内使用docker logs命令,查看容器内的标准输出

docker logs 13972412dbdf 或 docker logs 对应的名字

停止:

docker stop 13972412dbdf 或 docker stop 对应的名字

docker search java docker pull java //搜索对应的镜像,然后下载

 

 

2. 运行web应用

# docker run -d -P training/webapp python app.py

#docker ps 

输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
 e5aabc457784 training/webapp "python app.py" 12 seconds ago Up 11 seconds 0.0.0.0:32768->5000/tcp agitated_brown 13972412dbdf ubuntu:15.10 "/bin/sh -c 'while t…" 16 minutes ago Up 16 minutes ........

 

Docker 开放了 5000 端口(默认 Python Flask 端口)映射到主机端口 32768 上。

这时我们可以通过浏览器访问WEB应用(使用本地主机IP)

我们也可以通过 -p 参数来设置不一样的端口:

docker run -d -p 5000:5000 training/webapp python app.py

查看端口映射情况:

docker port 1b4d598106c1 或 docker port 对应名字

其他常用命令:

docker top id/name:查看容器内运行的进程信息 
docker inspect id/name:  来查看 Docker 的底层信息。它返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。 
docker start/stop/rm id/name:运行、停止、删除镜像
 docker images:查看本地镜像 REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像创建时间 SIZE:镜像大小
 docker pull ubuntu:13.10 获取新镜像 
docker tag 860c279d2fec runoob/centos:dev //打标签

 

3. 提交容器副本

ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。

docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8

各个参数说明:

  • -m:提交的描述信息
  • -a:指定镜像作者
  • e218edb10161:容器ID
  • runoob/ubuntu:v2:指定要创建的目标镜像名
docker images

 docker run -t -i fish/ubuntu:v2 /bin/bash

4 构造dockerfile,构建镜像:

FROM centos:6.7 
MAINTAINER Fisher "[email protected]" 
RUN /bin/echo 'root:123456' |chpasswd
 && useradd runoob \ 
 && /bin/echo 'runoob:123456' |chpasswd \
 && /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local \ 
EXPOSE 22 
EXPOSE 80 
CMD /usr/sbin/sshd -D

 

构建镜像:

docker build -t runoob/centos:6.7 /home/fish/

构建成功后,查看 docker images 再运行 生成容器

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章