美文网首页
Docker 学习

Docker 学习

作者: 韬韬不绝 | 来源:发表于2016-09-09 15:25 被阅读99次

Docker安装

以Ubuntu为例:
https://yeasy.gitbooks.io/docker_practice/content/install/ubuntu.html
安装完成后输入docker info查看Docker信息。
运行以下命令验证安装:

$ docker run hello-world

阿里云镜像加速

因不可描述的原因,在国内无法访问 DockerHub 镜像仓库,在国内使用官方的Docker registry下载时速度很慢,我们可以配置阿里云镜像加速,方便远程下载镜像。

注册阿里云开发者帐号帐号 https://cr.console.aliyun.com/
登陆后取得专属加速器地址,类似这样https://xxxxxx.mirror.aliyuncs.com

加速器地址

配置加速器

如果您的系统是 Ubuntu 12.04 14.04,Docker 1.9 以上

echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=https://bz1mhxzo.mirror.aliyuncs.com\"" | sudo tee -a /etc/default/docker
sudo service docker restart

如果您的系统是 Ubuntu 15.04 16.04,Docker 1.9 以上

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/mirror.conf <<-'EOF' 
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --registry-mirror=https://bz1mhxzo.mirror.aliyuncs.com
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

加速器使用

Docker加速器使用时不需要任何额外操作,直接按原来的Docker命令下载镜像即可。
可以执行docker searchdocker pull ubuntu命令,看看速度有没有变快很多~<( ̄3 ̄)>

Docker使用

hello world

Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。

$ docker run ubuntu:16.04 /bin/echo "Hello world"
输出: Hello world
  • docker run 运行容器
  • ubuntu:16.04指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • **/bin/echo "Hello world": **在启动的容器里执行的命令
    以上命令可以解释为:Docker 以 ubuntu16.04 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。

运行交互式容器

$ docker run -i -t ubuntu:16.04 /bin/bash
  • -t:在新容器内指定一个伪终端或终端。
  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。
    执行命令后,我们会进入Ubuntu系统,可以尝试在容器中运行命令cat /proc/versionls分别查看当前系统的版本信息和当前目录下的文件列表。
    可以通过运行exit命令或者使用CTRL+D来退出容器。

守护进程启动容器(后台模式)

$ docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
后台模式运行
在输出中,我们没有看到期望的"hello world",而是一串长字符
5983ba63902c34686ee7df5e56ba231e0735c70ff579853719eb5d57bc77ee65
这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。
可以通过 docker ps 来查看容器是否在运行。
执行docker ps 查看运行中的容器
CONTAINER ID:容器ID
NAMES: 自动分配的容器名称

使用docker logs [容器ID或者名字]命令,查看容器内的标准输出:

docker logs

停止容器

可以使用docker stop [容器ID或者名字]命令来停止容器

docker stop

重新启动容器

docker start [容器ID或者名字]

Docker命令帮助

我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项,还可以通过命令 docker command --help 更深入的了解指定的 Docker 命令使用方法。

查看已安装的镜像

docker images
执行docker images 查看已安装的镜像

删除镜像

docker rmi [容器ID或者名字]

注:删除镜像前需先通过docker rm + 容器id命令删除依赖于该镜像的容器。

docker rmi删除镜像

运行一个web应用

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

-p: 将容器内部使用的网络端口映射到宿主主机上。

指定端口映射

我们也可以通过 -p 标识来指定映射端口:

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

使用 docker port 可以查看指定 (ID或者名字)容器的某个确定端口映射到宿主机的端口号。

查看WEB应用程序日志

docker logs -f [容器ID或者名字]

-f:dokcer logs 像使用** tail -f** 一样来输出容器内部的标准输出。

查看WEB应用程序容器的进程

docker top [容器ID或者名字]

附录

  1. Docker命令速查 http://www.runoob.com/docker/docker-command-manual.html
  2. 阿里云Docker镜像 https://dev.aliyun.com/search.html

参考及引用

  1. 菜鸟教程 | Docker教程 http://www.runoob.com/docker/docker-tutorial.html
  2. Docker — 从入门到实践 https://www.gitbook.com/book/yeasy/docker_practice/details
  3. Docker下使用daocloud/阿里云镜像加速 http://www.imike.me/2016/04/20/Docker%E4%B8%8B%E4%BD%BF%E7%94%A8%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F/

相关文章

网友评论

      本文标题:Docker 学习

      本文链接:https://www.haomeiwen.com/subject/eqmsettx.html