Hello welcome to Yzone.net

docker 使用记录2

运行一个简单的PHP环境

准备工作

先拉取一个php镜像,这里拉取官方的基于alpine的镜像(alpine 小型的Linux系统,只有几M)。 php7的镜像。

$ docker pull php:alpine
$ docker images # 查看拉取的镜像
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
centos                     centos7             970633036444        9 days ago          196.7 MB
php                        alpine              3aa9d5eb4927        9 days ago          57.17 MB

运行镜像

$ docker run -ti --rm -v=/Workspace/php:/data/www -p=80:8777 php:alpine sh
# 进入了alpine. 执行 ls 查看下. 挂载的 data 目录也存在了
/ # ls
bin      data     etc      lib      media    proc     run      srv      tmp      var
core     dev      home     linuxrc  mnt      root     sbin     sys      usr

一些参数说明:

  • -ti 进入容器的交互界面终端
  • --rm 退出容器后立即删除容器
  • -v 设置数据挂载点,也可直接挂载本机目录到容器。这里是将本机的工作目录 /Workspace/php 挂载到容器的 /data/www 目录。
  • -p 设置容器端口映射。这里将本机的 80 端口 映射到容器的 8777 端口

查看端口映射信息

  • 通过命令 docker ps 可以查看到端口映射信息

这里要打开新的shell窗口或者面板来输入命令。因为上面的已经被占用了,关掉或退出都会关闭并删除容器。

若使用了docker-machine的话(Windows/Mac下需要),直接运行docker 命令,可能会报无法连接到主机的错误,需先导出docker machine环境信息eval $(docker-machine env)

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
c698fa5bb7ff        php:alpine          "sh"                22 minutes ago      Up 22 minutes       0.0.0.0:80->8777/tcp   serene_pasteur
  • 通过 docker port 命令查看
# serene_pasteur 是上面的容器名称
$ docker port serene_pasteur 8777  
0.0.0.0:80

镜像和容器的批量清理

镜像和容器的清理

  • 删除所有运行中的容器
$ docker kill $(docker ps -q)
  • 删除所有停止的容器
$ docker rm $(docker ps -a -q)
  • 删除所有没有tag和挂起的镜像
docker rmi $(docker images -q -f dangling=true)
  • 删除所有镜像
docker rmi $(docker images -q)

分类 docker    标签 docker , env-build
文档结构