Skip to main content
  1. Code Space/

Docker 命令速查

·255 words·2 mins

新创建 Docker 工作流:
#

  1. 编写 Dockerfile
  2. 构建新镜像 build
  3. 运行 run
  4. 停止 stop
  5. 删除 rm

构建新镜像
#

docker build -t statusbarimg .

启动容器
#

-d 后台, -p 暴露给外部的(宿主):内部监听的端口(容器) –name 别名

docker run --name statusbarcontainer -d -p 80:8000 statusbarimg

交互模式启动
#

docker run -it --name statusbarcontainer -p 80:8000 statusbarimg

启动/停止/重启
#

docker start/stop/restart statusbarcontainer/container_id

删除容器
#

docker rm statusbarcontainer

删除镜像
#

docker rmi

连接容器
#

link db:db 连接到名为 db 的 容器上,并且用 db 指代该容器 -e DATABASE_HOST=db 将环境变量 DATABASE_HOST 设置为 db

docker run -it -p 8123:8123 --link db:db -e DATABASE_HOST=DB users-service

在 xx 容器中执行命令
#

docker exec statusbarimg cat /etc/hosts

关闭
#

docker kill container_id

查看容器
#

docker ps # -l(最近一次运行的)/-a(所有的)

查看镜像
#

注意,运行着或运行过的镜像为容器,删镜像要先删容器,包括运行过的, 流: ps -a 看容器 id -> rm 删容器 -> images 看镜像 -> 删镜像

docker images

拉取/推送/搜索
#

docker pull/push/search

tag
#

docker tag 195eb90b5349 seanlook/ubuntu:rm_test

提交对 image 的改动
#

对运行中的容器编辑后,可以保存修改,持久化到磁盘

docker commit -m "some tools installed" fcbd0a5348ca seanlook/ubuntu:14.10_tutorial

进入正在后台运行的容器后 exit 会导致容器关闭)
#

docker exec -it 6057024435c4 /bin/sh

其他参考:http://blog.csdn.net/permike/article/details/51879578

复制文件到容器
#

docker cp  ./peatio cf152a690090:/root

.Dockerfile 示例

# 设置基础镜像 和 维护者

FROM daocloud.io/node:8

MAINTAINER me@yanbingbing.com

# 设置env环境

ENV HTTP_PORT 8000

# 设置工作目录 和 复制本地镜像到容器中

COPY . /app

WORKDIR /app

npm install

RUN npm install --registry=https://registry.npm.taobao.org

# 暴露的端口

EXPOSE 8000

# 命令

CMD ["npm", "start"]

Docker Composer
#

Docker Composer 允许用户创建一个文件,在其中定义系统里的每个容器,容器间的关系,并且构建或者运行它们。

就是一下子跑数据库,app 和 nginx,并排好他们的连接关系,启动顺序,自动执行

Docker Composer 工作流
#

写 docker-compose.yml -> build -> up -> down

docker-compose build
docker-compose up/down

Docker 网络互联
#

docker run 里的–network 选项有 bridge,host,自定义的名字等 同一个 network 下面可以互联,默认是 bridge,自定义的名字就像一个 namespace 一样,可以直接相互连接。

比如,在 connected 这个网络空间中,运行容器

docker run -d -p 3001:3001 --network connected --name post post