docker基础命令

镜像与容器的关系

1、根据镜像(基础镜像或者自定义镜像)去创建容器
2、在创建好的容器中执行操作,将改动后的容器保存为一个新的镜像
3、根据新的镜像创建容器

查看docker的安装信息:docker info

镜像

操作镜像

1
2
3
4
5
6
# 查看镜像列表
docker images
# 删除镜像
docker rmi <image id>
# 删除所有镜像
docker rmi $(docker images -q)

pull创建镜像

docker pull busybox

dockerfile创建镜像

dockerfile

1
2
3
4
5
6
7
# 一个在centos中安装jpk的例子
# dockerfile 和 jdk的安装包需保存于同一个目录下
FROM centos:6.6
RUN mkdir /data
ADD jdk-8u111-linux-x64.rpm /data/
RUN yum install rpm -y
RUN rpm -ivh /data/jdk-8u111-linux-x64.rpm

docker build

docker build -t [镜像名称] [dockerfile所在目录]
docker build -t docker-whale .

容器

docker run创建容器

打印‘Hello Docker’

docker run busybox /bin/echo Hello Docker

docker run参数

docker run -d -p 81:80 --name webserver nginx:1.9.1
-d,容器将会运行在后台模式
-p 81:80,nginx运行在容器的80端口,对应主机的81端口
–name webserver,指定容器名称为webserver,如果在执行docker run时没有指定–name,那么deamon会自动生成一个随机字符串UUID
nginx:1.9.1,指定镜像名称:版本号

docker run -i -t busybox /bin/bash
创建容器的同时可同容器进行交互式操作

进入与退出容器

docker exec -it [容器名称] /bin/bash,进入容器
exit,退出容器的同时会将容器暂停
Ctrl-P + Ctrl-Q,退出容器但保持容器继续运行。

操作容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 查看运行中容器
docker ps
# 查看所有容器(运行或停止)
docker ps -a
# 查看容器运行日志
docker logs test_a
# 观察容器內进程的运行状况(实时日志)
docker attach test_a

# 停止、启动容器
docker stop/start/restart test_a
# 删除容器(需要先停止,才能执行删除)
docker rm test_a
# 删除所有容器
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
# 保存容器为镜像
docker commit [容器名称或ID] [镜像名称:镜像Tag]

That’s all.
Happy writing!