1 容器操作
- run
- attch
- exec
- ps
- start / restart
- logs
- kill
-
run
docker run 用来通过镜像启动一个容器。这个可以算是操作 docker 容器的核心命令了,参数及其丰富,多达 91 个参数
docker run-p 80:80 本地的端口:容器的端口-d 后台运行-v /Users/lovepenny/docker/nginx:/usr/share/nginx/html 本机的目录:容器的目录-e MYSQL_ROOT_PASSWORD=123456 设置环境变量--name nginx 设置名字--link link 后面跟一对映射的值,左侧的为已经存在的 Docker 容器,右侧的为该容器映射到我们启动的 Docker 应用中的 host 名字,nginx:latest 容器名字
官方文档
几个重要的参数 —interactive 等同于 -i ,接受 stdin 的输入;
- —tty 等同于 -t,分配一个 tty,一般和 i 一起使用;
- —name 给容器设置一个名字;
- —add-host 给容器设置 hosts 文件,格式 host:ip;
- —env 环境变量设置;
- —expose 暴露端口;
- —hostname 设置容器的主机名;
- —link 容器网络相关,和其他的 container 连接;
- —cpu-quota 设置 CPU 限制;
-
attch
docker attach 让我们可以进入到一个运行着的容器的内部,这个命令的原理是给一个正在运行的容器分配一个 stdin、stdout 和 stderr。
需要注意的是,如果 docker attach 之后要退出的话,不能使用 exit,使用 exit 原容器也会退出。我们可以使用 Ctrl + C 的方式退出。exec
docker exec 命令也可以达到 attach 的目的。exec 命令的用处是在一个运行着的容器里面执行一个命令。关于这个命令的原理其实很简单,在 Linux 内核层面,相当于 fork 了一个进程,然后这个进程设置和容器相同的 NameSpace。如果我们 OPTIONS 指定 -ti ,那么我们就可以进入到一个运行着的容器里面执行命令了。因为这个是一个 fork 出来的进程,所以可以 exit。
ps
列出正在运行的容器
-
kill
docker kill 用来 kill 一个或者一组 container。
logs
docker logs 用来获取 docker 的 log。
top
docker top 查看一下运行这个容器在宿主机上面的进程,
2 镜像操作
images
- build
- commit
- history
- save
- import / load
- rmi
-
images
列出本地所有镜像,官方文档
build
commit
对容器做了一些改变,想把这些改变存储下来,形成新的镜像。在生产环境中,不能使用。订制镜像应使用dockerfile。
关于commit的文章 官方文档history
save
当需要将镜像导入另一台镜像时,由于安全性或者镜像本身比较大的原因不适合先push 再pull。此时可以将镜像先导出成压缩文件,然后再将压缩文件导入到另外一个机器
使用docker save将镜像导出成压缩文件。import / load
rmi
删除镜像
-
tag
可以用来给镜像打tag
