Docker操作小结及GDG Docker第一次活动记录

2019/08/12 21:52 下午 posted in  随记 舶来 comments

最近有些地方需要Docker的使用,为了总结近期经验并且重拾Docker相关技术以及GDG Docker第一次活动记录,对一些操作进行重新总结。

Docker常用操作

所有命令均省略sudo

查看所有镜像:

docker images

查看所有容器:

docker ps -a 

查看守护容器日志:

docker logs 容器名或容器id

杀死所有正在运行的容器:

docker kill $(docker ps -a -q)

删除所有已经停止的容器:

docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像:

docker rmi $(docker images -q -f dangling=true)

删除所有镜像:

docker rmi $(docker images -q)

查找你需要的Docker镜像列表:

docker search mysql

下载镜像:

docker pull [REGISTRYHOST/][USERNAME/]NAME[:TAG]

容器转成镜像:

sudo docker commit <CONTAINER ID> imagename01

容器转成文件:

sudo docker export <CONTAINER ID> > /home/export.tar

镜像转成文件:

sudo docker save imagename01 > /home/save.tar

注:一般情况下,save.tar比export.tar大一点点而已,export比较小,因为它丢失了历史和数据元metadata。

文件转成镜像:

cat /home/export.tar | sudo docker import - imagename02:latest
save.tar文件转成镜像:
docker load < /home/save.tar

查看转成的镜像:

sudo docker images

GDG Docker第一次活动记录

查看Docker 版本

当Docker 安装完成后,可以用下面的命令来查看

docker -–version #版本信息
docker info #配置信息
docker -–help #帮助信息

640

运行你的第一个docker 镜像

docker run hello-world

640 -1-
 

Docker 命令行工具介绍

Docker CLI 指令分为两类,一类是 Management Commands,一类是镜像与容器Commands。

你可以通过docker –help 进行查看。

Docker 的命令格式为:

docker [OPTIONS] COMMAND

这里我们选取常用的几个命令进行示例:

docker pull :  从镜像仓库中拉取镜像

docker pull Ubuntu

docker run :

docker run –it ubuntu:latest
  • -i : interactive mode 
  • -t: 分配tty 

640 -2-

Docker-CLI 与Linux 语法具有相似性,例如:

docker image ls 
docker container ls
docker container ps

如果你有Linux 基础,那么相信对于Docker-CLI 上手还是比较容易的。

有了上面的基础,那么让我们来进入一个实战吧。

 

实战-1:2048 Web

docker run -d -P daocloud.io/daocloud/dao-2048

Tip: -d 表示容器启动后在后台运行

docker ps 查看容器运行状态如图:

看到端口映射关系 0.0.0.0:32768->80。指宿主机的 32768 端口映射到容器的 80 端口,用浏览器打开localhost:32768

Dockerfile 简介

Docker 可以从Dockerfile 文件中构建镜像,Dockerfile 语法请参考:

https://docs.docker.com/engine/reference/builder/

只需要几个基本的语法就能构建出我们需要的容器。

FROM : 这会从 Docker Hub 中拉取镜像,目的镜像基于所拉取的镜像进行搭建

WORKDIR: RUNCMDENTRYPOINTCOPY, ADD以此为工作路径

COPY:拷贝文件或文件夹到指定路径

RUN:镜像的最上层执行命令,执行后的结果会被提交,作为后续操作基于的镜像。

EXPOSE:暴露端口号

ENV:设置环境变量

CMD["executable","param1","param2"]:一个Dockerfile 应该只有一处 CMD 命令,如果有多处,则最后一处有效。

 

实战 -2:搭建Python Web

首先准备一个Dockerfile 文件与一个app.py 文件

分别执行:

docker build --tag=friendlyhello . #build
docker run -p 4000:80 friendlyhello #run
curl http://localhost:4000 #test
docker container stop XXX #stop

 

中间输出结果:

Docker 生成container时会生成一个唯一的container-id,在上图中stop 命令用到了container-id。当然,你可以使用docker tag 命令对container 进行重命名。

Tip: 

-p 4000:80 : 指的是从宿主机端口4000 映射到容器端口80 

现在打开浏览器访问localhost:4000:

参考文献

  1. GDG Docker第一次讲义幻灯片
  2. 【活动回顾】容器实战:Docker 基础入门 - GDG微信公众号