- 创建容器
docker create ubuntu:14.04 --name="name"
docker run ubuntu:14.04 --name="runname"
run 和 create 的区别
create 只创建容器不启动 ; run 创建容器并启动
- 交互型容器
运行在前台 exit 、 docker stop 、 docker kill 退出终端并停止
-i 打开容器的标准输入 (STDIN)
-t 为容器建立一个命令行终端(shell)
ex:
docker run -i -t --name="inspect_shell" ubuntu /bin/bash
- 后台型容器
docker run -name daemon_while -d ubuntu /bin/sh -c "while true ;do echo hello docker ; sleep 1; done"
-d
- 查看容器
docker ps
查看当前正在运行的容器
docker ps -a
查看所有容器
docker ps -a -q
只显示容器ID 可用于关闭/删除所有容器
docker ps -l
只列出最后创建的容器
docker ps -n=2
-n=X 列出最后创建的X个容器
- 启动容器
docker start 容器名或ID
--restart 让容器能够自动重启
--restart=always 不管容器返回码是什么都会重启
--restart=on-failure:5 当收到一个非 0 的返回码时,最多尝试重启容器5次
- 终止容器
docker stop 容器名或ID
- 删除容器
docker rm 容器名或ID
-f 强制删除
docker rm 'docker ps -a -q'
- 依附容器
docker attach ubuntu
后台型容器是无法依附终端的,因为它本身就不接受用户交互输入
- 查看容器日志
docker logs -f 容器名
-f 实时查看日志
-f --tail=5 实时查看最后5行日志
-f --tail=5 -t 实时查看最后5行日志以及日志产生时刻
- 查看容器进程
docker top 容器名
- 查看容器信息
docker inspect 容器名
用于查看容器的配置信息,包含: 容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等
-f或 --format
docker inspect --format='{{ .State.Running }}' deamon_dave
docker inspect --format='{{ .NetworkSettings.IPAddress }}' deamon_dave
- 容器内执行命令
后台型任务
docker exec -d 容器名 touch /etc/new.file
交互型任务
docker exec -t -i 容器名 /bin/bash
- 容器导入和导出
docker export 容器名 > my_xx.tar
cat my_xx.tar | docker import - imported:container
docker import URL res:tag
镜像:
镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变已读写层的形式增加到原来的只读文件上。
镜像管理
docker images
docker insect 容器名
docker search 容器名
docker pull 容器名
docker rmi 容器名ID
docker commit -m="message" --author="duoban" ID tag
docker commit -m="message" --author="duoban" ID duoban/test:v1
Dockerfile
1 # Version: 1.0.1
制定待扩展的父级镜像。
2 FROM ubuntu:latest
3
声明创建的镜像的作者信息
4 MAINTAINER duoban "duoban@db.com"
5
6 #设置root用户为后续命令的执行者
7 USER root
8
9 #执行操作
10 RUN apt-get update
11 RUN apt-get install -y nginx
12
13 #使用&&拼接命令
14 RUN touch test.txt && echo "abc" >> abc.txt
15
16 #对外暴露端口
17 EXPOSE 80 8080 1038
18
19 #添加文件
20 ADD abc.txt /opt
21
22 #添加文件夹
23 ADD /webapp /opt/webapp
24
25 #添加网络文件
26 ADD https://cdn.pixabay.com/photo/2016/01/03/00/09/whale-1118876_1280.jpg /opt/
27
28 #设置环境变量
29 ENV WEBAPP_ROOT=9090
30
31 #设置工作目录
32 WORKDIR /opt/
33
34 #设置启动命令
35 ENTRYPOINT ["ls"]
36
37 #设置启动参数
38 CMD [ "-a", "-l" ]
39
40 #设置卷
41 VOLUME ["/date" , "var/www"]
42