常用命令

命令

镜像相关

1
2
3
4
5
6
7
8
9
10

# 相关镜像
docker images #查看本地所有镜像
docker image ... # 镜像相关
docker image list #查看本地所有镜像
docker search ubuntu # 搜索
docker pull ubuntu # 拉取镜像
docker rmi #移除镜像


容器相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37



# 创建容器
# -i交互式
# -t打开终端(exit退出)
# -d后台运行
# -v映射文件夹
# -P 将容器内部使用的网络端口随机映射到我们使用的主机上。
# -p 将容器的端口指定映射到主机上
docker run -itd ubuntu /bin/bash
docker run -itd --name ubuntu-test ubuntu /bin/bash # --name指定容器名称
docker run -d -P training/webapp python app.py # -P 随机映射容器端口到主机端口 python app.py 是运行命令
docker run -d -p 5000:5000 training/webapp python app.py # -p 指定端口映射
# 在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过attach或exec进入
docker attach <id_or_name> # 退出时容器会停止
docker exec -it <id_or_name> /bin/bash #退出时容器不会停止 加 -it 才能交互式, /bin/bash 是执行的类型


# 容器相关命令
docker ps # 查看运行的容器
docker ps -a # 查看所有 -l查看最近一次启动的容器
docker stop <id_or_name> # 停止容器<容器id或名称>
docker start <id_or_name> # 启动已经停止的容器
docker container ... # 容器相关
docker container list # 等同于 docker ps
docker container prune # 清理所有终止的容器
docker container restart # 重启

# 导入导出容器
docker export 1e560fca3906 > ubuntu.tar # 导出容器成ubuntu.tar
cat docker/ubuntu.tar | docker import - test/ubuntu:v1

#移除容器 -f 强制
docker rm -f <id_or_name>


其它命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 其它
docker stats # 查看状态 类似于top
docker logs -f <id_or_name> # 查询日志,类比 tail -f
docker inspect <id_or_name> # 查看容器docker底层信息
# 镜像提交
# 提交之前在容器中运行 apt-get update
# -m: 提交的描述信息
# -a: 指定镜像作者
# id:容器 ID
# runoob/ubuntu:v2: 指定要创建的目标镜像名
docker build #构建镜像,需要指定Dockerfile
docker commit -m="image description" -a="author" id runoob/ubuntu:v2
docker push repository # docker images 下自己的镜像路径
docker login
docker logout


构建docker镜像

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

先创建Dockerfile文件

1
2
3
4
5
6
7
8
9
10
FROM    centos:6.7
MAINTAINER Fisher "fisher@sudops.com"

RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'runoob:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
  • FROM,指定使用哪个镜像源
  • MAINTAINER 维护人员
  • RUN 运行的命令
  • EXPOSE ?
  • CMD ?

运行构建

docker build -t kewen/centos1 .

  • -t:指定要创建的目标镜像名
  • .:代表Dockerfile的文件路径在当前目录

这里会下载centos并构建
build

构建完成之后使用docker images便可以看到镜像了
images

可以使用docker tag e4412e27253f kewen1/centostag:dev创建标签,不创建标签为latest
tags后
创建之后一个镜像则有多个版本