# 执行Docker命令
添加该步骤可以在主机上执行Docker命令，完成镜像构建、上传、拉取、运行等操作。以下详细介绍各命令的配置方法。
 #### 执行login、logout命令
**约束限制**
- 当前操作仅支持私有仓库或SWR仓库，公共仓库登录/退出，推荐使用"执行shell命令"部署步骤。
- 执行login命令时**"重启** **Docker** **服务"** 请使用默认选项**"** **不重启** **"**。
- 当您登录私有仓库时，Docker在*.docker/config.json* 文件中包含私有仓库的有效凭证，该凭证默认使用Base64编码存储，建议您使用**docker-credential-pass、** **gpg**对Docker进行安全加固。
**操作步骤**
1. 搜索并添加"执行Docker命令"部署步骤。
2. 选择**"login"** 或**"logout"**命令。
3. 选择需要登录或者退出的镜像仓，如果没有，请单击**"新建"** 。
   
   弹出**"新建服务扩展点"**对话框，示例如下图所示。
   ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000001550952545.png "点击放大")
   表1参数说明 
   | 参数    | 描述                                                                                                                                |
   |:---|:---|
   | 连接名称 | 镜像仓库连接的名称。请为当前镜像仓库连接命名，方便选择和管理。                                                                                                  |
   | 仓库地址  | 镜像仓库地址，可使用私有仓库或SWR仓库。 镜像仓库地址中**不能包含组织名称或镜像名称等信息**，格式为"https://XXXX.com"或"http://XXXX.com"。 |
   | 用户名    | 用于登录该镜像仓库的用户名。                                                                                                                   |
   | 密码    | 用于登录该镜像仓库的密码。                                                                                                                    |
      
   
   
4. 登录SWR仓库示例。 
   1. 登录控制台，在页面左上角单击"**服务列表 \> 容器 \> 容器镜像服务 SWR** "，进入SWR服务首页，单击**"我的镜像 \> 客户端上传"**。
   
   2. 弹出客户端上传对话框后，单击**"生成登录指令"** 。
      此处生成的临时登录指令可选择有效时长或自定义时长，若需要长期有效的docker login指令，请参见[获取长期有效docker login指令](https://support.huaweicloud.com/usermanual-swr/swr_01_1000.html)，它们之间的区别请参见[长期有效的docker login指令与临时docker login指令的区别是什么？](https://support.huaweicloud.com/swr_faq/swr_faq_0015.html)
      
      
      
   
   3. 以临时指令为例，单击生成后，弹出如下指令框。
      - **"** **-u** **"**后面是用户名。
      
      - **"-p"**后面是密码。
      
      - **"swr.XXXXX.com"**是仓库地址。
      
      
      ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000002592582254.png "点击放大")
      
      
      
   
   4. 对应部署页面，新建服务扩展点应输入内容如下： 仓库地址格式需修改为"https://XXXX.com"或"http://XXXX.com"。
      注意临时指令中获取的镜像仓库地址，在上图内容填写时，增加"https://"或"http:"前缀。
      
   
   5. 单击**"确定"** 。
      可在部署服务页面使用docker login命令登录该镜像仓。
      
   
   
   
   
5. 镜像仓库添加完成后，如需修改仓库信息，可在Docker部署步骤页，单击**"镜像仓"** 对应的**"管理"** ，跳转到服务扩展点管理页面后，进行编辑或删除，如下图所示。
   
   ![](https://support.huaweicloud.com/usermanual-deployman/zh-cn_image_0000001956105866.png "点击放大")
   
   
   
 
#### 执行build命令
制作Docker镜像需上传制作好的"Dockerfile"文件，通过"选择部署来源"步骤放置在部署目标主机中。
Dockerfile是由一系列命令和参数构成的脚本，这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。Dockerfile从FROM命令开始，紧接着跟随着各种方法，命令和参数。详细制作方法请参考[Docker官网](http://www.docker.org.cn/)。
1. 搜索并添加"执行Docker命令"部署步骤。
2. 选择**"build"**命令，输入部署目标主机中放置Dockerfile文件的路径，以及"docker build"命令的执行参数。
 
#### 执行tag命令
1. 搜索并添加"执行Docker命令"部署步骤。
2. 选择"tag"命令，输入需要打标签的镜像，以及"docker tag"命令的执行参数（非必填）。 
   如果需要为多组镜像打标签，请以换行隔开。
   
   
 
 #### 执行run命令
执行run命令时，**不支持以交互模式创建启动容器**，执行参数中需加入"-d"，以后台运行方式执行命令。
1. 搜索并添加"执行Docker命令"步骤。
2. 选择"run"命令，输入"docker run"命令的执行参数。
 
#### 执行其他命令
1. 搜索并添加"执行Docker命令"部署步骤。
2. 选择命令**（push、pull、start、stop、restart、rm、rmi）** ，并输入对应命令的执行参数。
   
   命令执行参数示例：
   ```
   push：docker.test-registry.com/branch/Ubuntu:v1
   pull：docker.test-registry.com/branch/Ubuntu:v1
   rm: -f db01 db02
   rmi: -f docker.test-registry.com/branch/Ubuntu:v1
   start/stop/restart：容器ID或名称。
   ```
   
   
 
#### 相关文档
若在部署过程中遇到问题，可参考该步骤的[常见问题解决办法](https://support.huaweicloud.com/deployman_faq/deployman_faq_0016.html)。
