提示
推荐环境:Centos7
说明
本文只整理公司涉及到的常用命令及参数说明,完整参数及列表可自行去查看docker-cli的命令帮助说明。
pull
用于拉取镜像。默认从docker官方的仓库拉取。
语法:docker pull [OPTIONS] NAME[:TAG]
参数说明:
NAME
镜像名称。格式和url类似,由仓库路径和镜像名称组成,/
分割路径,仓库路径为空则默认是docker hub官方仓库。
例如镜像名称:nginx 和 docker.clzytech.com:1024/nginx 分别代表docker hub官方仓库和公司仓库的nginx镜像路径。
TAG
(可选)镜像标签。可为空,默认为latest
,如果镜像未发布latest
标签,则提示找不到的情况,主要用于区分镜像版本。
示例:
#从docker官方获取nginx
docker pull nginx
#等同于
docker pull nginx:latest
#从公司仓库获取nginx
docker pull docker.clzytech.com:1024/nginx:1.2.1
push
用于上传本地镜像到仓库。默认推送到docker官方仓库。
语法:docker push [OPTIONS] NAME[:TAG]
参数说明:和push
参数一致。请看push
参数说明。
注意
push命令需要先登录到对应的仓库才行。使用docker login {server}
登录到对应的仓库,如果使用docker hub,请去官方注册账号,即可拥有私有仓库;如果需要用到推送公司仓库时,请联系管理员分配账号和密码,提供服务地址。
build
用于打包编译自定义镜像。
语法:docker build [OPTIONS] PATH
参数说明:
OPTIONS
(可选)附件选项.-f
指定Dockerfile文件的位置。可以是相对路径或者绝对路径。
-t
指定镜像名称及标签。如果没有则为当前目录名称。
PATH
构建镜像的所有资源根目录。一般都在镜像资源目录根目录执行时为.
,如果非根目录,则指定资源文件目录的相对路径或绝对路径。
示例:
# 构建当前目录下,输出名称为myapp,标签为1.0.0的镜像
docker build -f ./Dockerfile -t myapp:1.0.0 .
说明
此命令主要用于自定义镜像构建。请详细阅读自定义镜像
tag
用于给已有镜像重新增加标签。例如给 nginx:1.0.0
增加一个 nginx:latest
的标签,或者修改镜像仓库路径docker.clzytech.com:1024/nginx:1.0.0
。
语法:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
参数说明:
SOURCE_IMAGE
原镜像ID(一串字符串,可通过docker images
查看)或者名称,TAG
可选。TARGET_IMAGE
新的镜像名称。需要完全指定镜像名称。即docker.clzytech.com:1024/nginx:1.0.0
示例:
# 通过镜像ID进行tag,其中f8f4ffc8092c为本地镜像列表,nginx镜像ID
docker tag f8f4ffc8092c docker.clzytech.com:1024/nginx:1.0.0
# 通过镜像名称进行tag
docker tag nginx docker.clzytech.com:1024/nginx:1.0.0
注意
tag时的源镜像必须在本地存在。如果不不存在,需要pull或者build。
run
创建并运行新一个容器
语法:docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
参数说明:
OPTIONS
(可选)附件选项.--name=CONTAINER_NAME
指定容器的名称。-v {HOST_PATH}:{PATH}
将主机的文件或目录挂载到容器内部的路径,类似于快捷方式。-p {HOST_PORT}:{PORT}
将主机的端口映射到容器内部端口,类似于nat。-d
后台运行容器,并返回容器ID,其后不接其他参数。如果不使用-d
,容器运行会和当前命令行同一会话,Ctrl+C会导出容器退出。-i
以交互模式运行容器,通常与 -t 同时使用,其后不接其他参数。如果在容器启动时需要用户输入一些参数进行配置启动,可以使用此参数。-t
为容器重新分配一个伪输入终端,通常与 -i 同时使用,其后不接其他参数。-e
为容器指定环境变量。具体由哪些环境变量,容器的使用说明会说明清楚。例如:MySQL创建时可使用MYSQL_ROOT_PASSWORD
进行设置默认密码。--env-file=ENV_FILE_PATH
为容器指定环境变量文件。如果存在较多环境变量配置,可以统一配置到文件,设置文件路径即可。支持多个文件路径,,
隔开。--restart=[none|always|on-failure:10]
为容器指定重启策略。none
表示不自动重启;always
表示如果docker启动时自动重启容器,容器启动失败一直重试,直道启动成功;on-failure:10
表示如果docker启动时自动重启容器,容器启动失败则重试,超过:
后面的次数则不再重试。--label io.portainer.accesscontrol.teams=TEAM_NAME
为容器指定标签。其中io.portainer.accesscontrol.teams
时portainer中用于设置容器可见权限的标签,公司部署时必须使用,后接TEAM_NAME
为项目简称代码,不清楚的可咨询项目经理。
IMAGE[:TAG]
镜像名称和标签.COMMAND
(可选)容器运行时需要执行的命令。例如运行Centos镜像,启动时执行bash。则可以在后接bash
。ARG...
(可选)COMMAND
对应的参数,具体格式由执行的程序决定。
示例:
# 创建一个ubutun。由于ubuntu镜像默认没有执行程序,需要使用-it让其进入终端,保证不会启动就退出。
docker run --name=ubuntu-test -itd ubuntu
# 创建一个nginx,将80端口映射到宿主机的8080端口,并将宿主机的/home/html挂载到容器/usr/share/nginx/html
docker run --name=nginx-test -p 8080:80 -v /home/html:/usr/share/nginx/html -d nginx
start
启动指定容器
语法:docker start [OPTIONS] CONTAINER [CONTAINER...]
参数说明:
CONTAINER
需要启动的容器ID或者容器名(run
命令--name
指定值)。可以多个,空格隔开。
示例:
# 使用容器名称启动
docker start nginx-test
# 使用容器id启动.docker ps -a可查看容器id
docker start 29de1bbe22be
stop
停止指定容器
语法:docker stop [OPTIONS] CONTAINER [CONTAINER...]
参数说明:和start
命令一致,请看start
参数说明。
示例:
# 使用容器名称停止
docker stop nginx-test
# 使用容器id停止.docker ps -a可查看容器id
docker stop 29de1bbe22be
restart
重启指定容器
语法:docker restart [OPTIONS] CONTAINER [CONTAINER...]
参数说明:和start
命令一致,请看start
参数说明。
示例:
# 使用容器名称重启
docker restart nginx-test
# 使用容器id重启.docker ps -a可查看容器id
docker restart 29de1bbe22be
rm
用于删除一个容器。
语法:docker rm [OPTIONS] CONTAINER [CONTAINER...]
参数说明:和start
命令一致,请看start
参数说明。
示例:
# 使用容器名称删除
docker rm nginx-test
# 使用容器id删除.docker ps -a可查看容器id
docker rm 29de1bbe22be
注意
删除容器前,请先stop
容器。