Docker初次见面

# Docker基础 ## hello world docker run ubuntu:15.10 /bin/echo "Hello world" Hello world 各个参数解析: - docker: Docker 的二进制执行文件。 - run:与前面的 docker 组合来运行一个容器。 - ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,若是不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 - /bin/echo "Hello world": 在启动的容器里执行的命令 ## 运行交互式的容器 docker run -i -t ubuntu:15.10 /bin/bash root@dc0050c79503:/# 各个参数解析: - -t:在新容器内指定一个伪终端或终端。 - -i:容许你对容器内的标准输入 (STDIN) 进行交互 ## 启动容器(后台运行) docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63 在输出中,咱们没有看到指望的"hello world",而是一串长字符 2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63 这个长字符串叫作容器ID,对每一个容器来讲都是惟一的,咱们能够经过容器ID来查看对应的容器发生了什么。 首先,咱们须要确认容器有在运行,能够经过 docker ps 来查看 docker ps ![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191022133620977-1633782530.jpg) 返回结果: - CONTAINER ID:容器ID - NAMES:自动分配的容器名称 在容器内使用docker logs命令,查看容器内的标准输出 docker logs 2b1b7a428627 或者docker logs {names} ## 中止容器 docker stop id 或者 docker stop {names} ## 运行一个web docker pull traning/webapp #载入镜像 docker run -d -P training/webapp python app.py 参数说明: - -d:让容器在后台运行。 - -P:将容器内部使用的网络端口映射到咱们使用的主机上。 ## 网络端口的快捷方式 docker port id 查看端口映射(从哪一个端口映射到宿主机的那个端口) ## 查看 WEB 应用程序日志 docker logs -f idor名字 查看容器内容的标准输出,-f: 让 docker logs 像使用 tail -f 同样来输出容器内部的标准输出。 ## 查看WEB应用程序容器的进程 docker top idor名字 查看web应用城西容器的进程 ## 检查 WEB 应用程序 docker inspect id or 名字 查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。 ## 中止和重启 web容器 docker stop id or 名字 docker start id or 名字 ## 查看最后一次建立的容器 docker ps -l 正在运行的容器,咱们能够使用 docker restart 命令来重启 ## 移除WEB应用容器 docker rm id or 名字 删除容器容器必须是stop状态 ## 列出镜像列表 docker images 返回结果说明: REPOSITORY TAG IMAGE ID CREATED SIZE REPOSITORY:表示镜像的仓库源 TAG:镜像的标签 IMAGE ID:镜像ID CREATED:镜像建立时间 SIZE:镜像大小 若是你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。 ## 查找镜像 咱们能够从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/ 咱们也能够使用 docker search 命令来搜索镜像。好比咱们须要一个httpd的镜像来做为咱们的web服务。咱们能够经过 docker search 命令搜索 httpd 来寻找适合咱们的镜像。 docker search httpd NAME:镜像仓库源的名称 DESCRIPTION:镜像的描述 OFFICIAL:是否docker官方发布 ## 建立镜像 当咱们从docker镜像仓库中下载的镜像不能知足咱们的需求时,咱们能够经过如下两种方式对镜像进行更改。 1.从已经建立的容器中更新镜像,而且提交这个镜像 2.使用 Dockerfile 指令来建立一个新的镜像 ## 更新镜像 docker run -t -i ubuntu:15.10 /bin/bash 在运行的容器内使用 apt-get update 命令进行更新。 在完成操做以后,输入 exit命令来退出这个容器。 此时ID为e218edb10161的容器,是按咱们的需求更改的容器。咱们能够经过命令 docker commit来提交容器副本。 docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2 各个参数说明: -m:提交的描述信息 -a:指定镜像做者 e218edb10161:容器ID runoob/ubuntu:v2:指定要建立的目标镜像名 ## 构建镜像 docker build 这须要一个dockerfile文件以下: cat Dockerfile FROM centos:6.7 MAINTAINER Fisher "fisher@sudops.com" RUN /bin/echo 'root:123456' |chpasswd RUN useradd runoob RUN /bin/echo 'runoob:123456' |chpasswd RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local EXPOSE 22 EXPOSE 80 CMD /usr/sbin/sshd -D 一个指令都会在镜像上建立一个新的层,每个指令的前缀都必须是大写的。 第一条FROM,指定使用哪一个镜像源 RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。 而后,咱们使用 Dockerfile 文件,经过 docker build 命令来构建一个镜像。 docker build -t runoob/centos:6.7 . Sending build context to Docker daemon 17.92 kB Step 1 : FROM centos:6.7 ---> d95b5ca17cc3 Step 2 : MAINTAINER Fisher "fisher@sudops.com" ---> Using cache ---> 0c92299c6f03 Step 3 : RUN /bin/echo 'root:123456' |chpasswd ---> Using cache ---> 0397ce2fbd0a Step 4 : RUN useradd runoob 参数说明: -t :指定要建立的目标镜像名 . :Dockerfile 文件所在目录,能够指定Dockerfile 的绝对路径 使用docker images 查看建立的镜像已经在列表中存在,镜像ID为860c279d2fec runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 12 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB 咱们能够使用新的镜像来建立容器 runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash [root@41c28d18b5fb /]# id runoob uid=500(runoob) gid=500(runoob) groups=500(runoob) 从上面看到新镜像已经包含咱们建立的用户runoob ## 设置镜像标签 docker tag 860c279d2fec runoob/centos:dev docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。 使用 docker images 命令能够看到,ID为860c279d2fec的镜像多一个标签。 runoob@runoob:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB php 5.6 f40e9e0f10c8 10 days ago 444.8 MB nginx latest 6f8d099c3adc 13 days ago 182.7 MB mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB hello-world latest 690ed74de00f 6 months ago 960 B centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB training/webapp latest 6fae60ef3446 12 months ago 348.8 MB 关注我,关注测试 **From:https://blog.csdn.net/crisschan**
相关文章
相关标签/搜索