Docker常用命令

帮助命令

1
2
3
4
5
6
# 查看版本信息
docker version
# 信息
docker info
# 查看命令帮助信息
docker 命令 --help

Docker命令的帮助文档 Command-line-reference

镜像命令

1
2
3
4
5
6
7
8
9
10
11
12
% docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker/getting-started latest b1bcd61774d8 10 days ago 27.2MB
hello-world latest 18e5af790473 8 weeks ago 9.14kB

# 解释
REPOSITORY 镜像仓库源
TAG 镜像的标签

# 可选项
-a, --all Show all images (default hides intermediate images)
-q, --quiet Only show image IDs

docker search:镜像搜索命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11712 [OK]
mariadb MariaDB Server is a high performing open sou… 4464 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 870 [OK]

# 可选项
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print search using a Go template
--limit int Max number of search results (default 25)
--no-trunc Don't truncate output
例如:docker search mysql --filter=stars=3000 --> 表示stars>=3000的结果
% docker search mysql --filter=stars=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11712 [OK]
mariadb MariaDB Server is a high performing open sou… 4464 [OK]

docker pull:下载镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 下载镜像 docker pull 镜像名 [:tag]
% docker pull mysql/mysql-server:5.7

5.7: Pulling from mysql/mysql-server
b8aa102ba20a: Pull complete
2ff679d72626: Pull complete
ea45979059fe: Pull complete
526a484cb892: Pull complete
4436dc023066: Pull complete
98b382a658b6: Pull complete
17d3acf6ac1e: Pull complete
c5ce8d5cf40e: Pull complete
Digest: sha256:32aac4632baa157d24e9eb3e20d2d62e775f0a2630afb8dabf5ee8c086b09c2a
Status: Downloaded newer image for mysql/mysql-server:5.7
docker.io/mysql/mysql-server:5.7

docker rmi:删除镜像命令

1
2
3
4
5
6
7
8
9
10
11
docker rmi -f 镜像id 镜像id  # 删除多个镜像
docker rmi -f $(docker images -qa) # 删除全部镜像
% docker rmi -f 18e5af790473

Untagged: hello-world:latest
Untagged: hello-world@sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Deleted: sha256:18e5af7904737ba5ef7fbbd7d59de5ebe6c4437907bd7fc436bf9b3ef3149ea9

# 可选项
-f, --force Force removal of the image
--no-prune Do not delete untagged parents

容器命令

docker run:新建容器并启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
docker run [可选参数] image

# 参数说明
--name="Name" 指定容器名字,用于区分容器
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口 - p 8080:8080
-p ip: 主机端口:容器端口
-p 主机端口:容器端口(常用)
-p 容器端口
-P 随机指定端口

# 启动并进入容器
hyunmin@HyunmindeMacBook-Air ~ % docker run -it centos /bin/bash
[root@44e406af8256 /]# exit # 退出容器

docker ps:查看运行中的容器

1
2
3
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77128abd1e9c centos:latest "/bin/bash" 15 hours ago Up 15 hours objective_hellman

退出容器

1
2
3
4
# 退出并关闭容器
exit
# 退出容器,不关闭,后台运行
Ctrl+P+Q

docker rm:删除容器

1
docker rm 容器id				# 删除指定容器,不能删除正在运行的容器,-f强制删除

启动和停止容器操作

1
2
3
4
docker start 容器id 				# 启动容器
docker restart 容器id # 重启容器
docker stop 容器id # 停止当前正在运行的容器
docker kill 容器id # 强制停止当前容器

DockerFile

DockerFile常用命令

DockerFile构建流程

Docker file创建一个自己的centos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 编写一个自己的docker file
FROM centos
MAINTAINER hyunmin<s_hyunmin@163.com>

ENV MY_PATH /usr/local
WORKDIR $MY_PATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MY_PATH
CMD echo "----end----"
CMD /bin/bash

# 2. build镜像文件
# build命令
docker build -f dockerfile文件路径 -t 镜像名:[tag] 文件目录(.)

# 3. 镜像本地变更历史
docker history docker镜像id