跳至主要內容

技术中心大约 6 分钟

提示

推荐环境:Centos7

说明

本文只整理公司涉及到的常用命令及参数说明,完整参数及列表可自行去查看docker-cli的命令帮助说明。

pull

用于拉取镜像。默认从docker官方的仓库拉取。

语法:docker pull [OPTIONS] NAME[:TAG]

参数说明:

  • NAME

镜像名称。格式和url类似,由仓库路径和镜像名称组成,/分割路径,仓库路径为空则默认是docker hub官方仓库。
例如镜像名称:nginx 和 docker.clzytech.com:1024/nginxopen in new window 分别代表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容器。