# Docker run 命令
* **\-P:** 隨機端口映射,容器內部端口**隨機**映射到主機的端口
* **\-p:** 指定端口映射,**格式為**:主機(宿主)端口:容器端口(**宿**主機端口:**容**器端口)
*****
**常用命令**
```
--privileged=true 使用該參數,container內的root擁有真正的root權限(可根據需要選擇是否要該參數)
--restart=always 自動重啟容器(可根據需要選擇是否要該參數)
-p 端口映射(宿主機端口:容器端口)
-v 容器卷掛載 (宿主機目錄 :容器目錄)
```
## **docker run --rm**
```
docker run --rm ?--name=test1 alpine
```
在Docker容器退出時,默認容器內部的文件系統仍然被保留,以方便調試并保留用戶數據。
但是,對于foreground容器,由于其只是在開發調試過程中短期運行,其用戶數據并無保留的必要,因而可以在容器啟動時設置--rm選項,這樣在容器退出時就能夠自動清理容器內部的文件系統。示例如下:
**docker run --rm ?--name=test1 alpine**docker run 加上--rm退出容器以后,這個容器就被刪除了,方便在臨時測試使用。不加--rm 退出容器后,容器只是停止運行,數據任然被保留。 不過容器內數據卷的內容不會被刪除。但是,--rm選項不能與-d同時使用(或者說同時使用沒有意義),即只能自動清理foreground容器,不能自動清理detached容器。
## **docker rm -v**
數據卷是被設計用來持久化數據的,它的生命周期獨立于容器,**Docker不會在容器被刪除后自動刪除數據卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷。** 如果需要在刪除容器的同時移除數據卷。
可以在刪除容器的時候使用?**docker rm -v**?這個參數。
```
docker rm -v XXX ? --用于刪除數據卷
```
**docker volume**
https://www.jianshu.com/p/ef0f24fd0674
## **常用命令**:
```
-d, --detach=false # 后臺運行容器,并返回容器ID;
-i, --interactive=false # 以交互模式運行容器,通常與 -t 同時使用;
-t, --tty=false # 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
-u, --user="" # 指定容器的用戶
-a, --attach=[] # 登錄容器(必須是以docker run -d啟動的容器)
-w, --workdir="" # 指定容器的工作目錄
-c, --cpu-shares=0 # 設置容器CPU權重,在CPU共享場景使用
-e, --env=[] # 指定環境變量,容器中可以使用該環境變量
-m, --memory="" # 指定容器的內存上限
-P, --publish-all=false # 指定容器暴露的端口
-p, --publish=[] # 指定容器暴露的端口
-h, --hostname="" # 指定容器的主機名
-v, --volume=[] # 給容器掛載存儲卷,掛載到容器的某個目錄
--volumes-from=[] # 給容器掛載其他容器上的卷,掛載到容器的某個目錄
--cap-add=[] # 添加權限,權限清單詳見:http://linux.die.net/man/7/capabilities
--cap-drop=[] # 刪除權限,權限清單詳見:http://linux.die.net/man/7/capabilities
--cidfile="" # 運行容器后,在指定文件中寫入容器PID值,一種典型的監控系統用法
--cpuset="" # 設置容器可以使用哪些CPU,此參數可以用來容器獨占CPU
--device=[] # 添加主機設備給容器,相當于設備直通
--dns=[] # 指定容器的dns服務器
--dns-search=[] # 指定容器的dns搜索域名,寫入到容器的/etc/resolv.conf文件
--entrypoint="" # 覆蓋image的入口點
--env-file=[] # 指定環境變量文件,文件格式為每行一個環境變量
--expose=[] # 指定容器暴露的端口,即修改鏡像的暴露端口
--link=[] # 指定容器間的關聯,使用其他容器的IP、env等信息
--lxc-conf=[] # 指定容器的配置文件,只有在指定--exec-driver=lxc時使用
--name="" # 指定容器名字,后續可以通過名字進行容器管理,links特性需要使用名字
--net="bridge" # 容器網絡設置:
bridge # 使用docker daemon指定的網橋
host # 容器使用主機的網絡
container:NAME_or_ID > # 使用其他容器的網路,共享IP和PORT等網絡資源
none # 容器使用自己的網絡(類似--net=bridge),但是不進行配置
--privileged=false # 指定容器是否為特權容器,特權容器擁有所有的capabilities
--restart="no" # 指定容器停止后的重啟策略:
no # 容器退出時不重啟
on-failure # 容器故障退出(返回值非零)時重啟
always # 容器退出時總是重啟
--rm=false # 指定容器停止后自動刪除容器(不支持以docker run -d啟動的容器)
--sig-proxy=true # 設置由代理接受并處理信號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
```
- 空白目錄
- containerd
- php
- php常用函數
- 點語法
- 依賴注入
- 反射
- 迭代器和yield
- array_walk
- str_replace
- openssl_decrypt
- array_merge
- 閉包
- 深拷貝與淺拷貝
- 面向對象
- 魔術方法
- __invoke
- __isset 和 __unset
- __clone
- 常用知識點
- 訪問權限
- 抽象類
- 多態
- php框架
- tp
- tp3
- tp5
- job
- laravel
- 中間件
- laravel閉包
- symfony
- 小工具
- phpexcel
- xlswrite
- 設計模式
- 事件event
- 里氏替換原則
- 借鑒
- RESTful API
- 環境安裝
- 編譯安裝
- 編譯安裝后擴展補充
- php小記錄
- php-fpm
- 容器(Container)
- composer
- composer踩坑
- mysql
- 基礎知識
- 外鍵
- 索引
- 觸發器
- 定時器
- 分表
- 分區
- 連接查詢
- 事務
- 鎖機制
- 視圖
- 存儲過程
- 查詢
- 字符截取
- 批量修改表名(前綴)
- explain
- when_case
- pdo
- mysql優化
- 主從復制
- 權限分配
- 實用例子
- 查詢用戶
- 常見問題
- 5.7group by問題
- 遠程鏈接慢問題
- 查看進程
- 遠程訪問
- 常用小記
- mysqldump
- 備份還原
- 系統盤遷移數據盤
- 安裝sql
- 安裝MariaDB
- docker
- 安裝docker
- 配置centos開發環境
- docker運行程序
- rabbitmq
- 刪除無用鏡像
- 解決Centos firewalld導致的docker容器內無法訪問外網,無法訪問其他容器(host沒辦法解析)
- docker-compose
- docker-selenium
- ports 配置
- docker-compose-settings
- 安裝
- docker-compose常用配置
- docker常用命令
- build
- docker-hub加速
- docker-run
- Dockerfile
- apt-get update 無法升級
- 阿里打標簽
- 打包流程
- docker-network
- ufw 允許 docker 容器聯網
- 安裝containerd
- linux
- centos7
- 常用語法
- chmod
- chown
- find
- grep
- /etc/passwd
- chattr
- In軟連接
- 文件目錄大小
- xargs
- 管道用法
- top
- free
- 端口占用
- 壓縮解壓
- tar
- gzip
- zip
- 2>&1
- 環境變量
- 服務管理
- systemctl
- sed
- shell腳本
- time
- journal
- history
- linux-set
- linux-curl
- cp
- umask
- mkdir
- http狀態碼
- awk
- lsof
- crontab
- supervisor
- 常用命令匯總
- 用戶權限
- 普通用戶添加sudo權限
- sudo su
- 添加用戶
- 查看用戶信息
- 修改用戶信息
- 特殊權限
- 系統命令
- 常用小技巧
- vim小技巧
- 防火墻
- 常用規則
- iptables
- 磁盤清理
- 分區掛載
- linux-sh
- tmux
- 多命令執行
- 常用工具
- telnet
- ip轉發
- nohup
- watch
- dig
- 查看磁盤IO
- ssh
- 修改ssh端口
- ssh免密登錄
- 配置文件
- 公鑰分發
- xsync
- 國內鏡像站
- github加速
- 測網速
- 網卡
- 清理日志備份
- 配置sftp
- shell
- rpm
- 安全
- 安裝openssl
- 安裝openssh
- 禁用selinux和防火墻
- lanp環境安裝
- versionTool
- git
- git基本用法
- Gogs搭建
- git鉤子
- git的習慣配置
- phpStorm設置git bash
- git bash 設置代理
- gitignore 不起作用的解決辦法
- gitea搭建
- 同步主干到fork
- git修改地址
- svn
- svn基本操作
- svn 鉤子應用
- svn多版本操作
- Go語言
- Go語言基礎
- 安裝環境
- linux安裝
- window安裝
- 工具使用教程
- linux終端分屏Screen
- keepass 帳號密碼管理
- phpstorm
- 去掉window換行符
- php_cs
- 自定義快捷模塊
- phpstorm快捷鍵
- curl
- 正則
- 設計架構
- 設計模式的六大原則
- 計算機基礎
- TCP三次握手
- OSI7層
- http狀態返回碼
- 前端框架
- Vue
- Angular
- React
- node
- 服務端渲染(SSR)
- MVVM
- nuxt
- pm2
- js
- Promise
- es6
- 常用站點
- 工具類
- 學習類
- ps常用命令
- nginx
- 緩存
- 配置
- TCP
- 常用配置
- ng優先級
- vhost注意點
- nginx第一層驗證
- 轉發(跨域問題)
- 404
- nginx日志格式化
- 重啟腳本
- 寶塔禁用境外ip訪問
- ng統計
- ng編譯安裝
- 防盜鏈
- 技術相關了解
- ddos
- xss
- mysql防注入
- csrf攻擊
- 郵箱系統原理
- DNS
- python
- Selenium
- 微信
- 公眾號
- 公眾號配置
- 用戶授權
- 小程序
- 公有云
- 華為云
- JAVA
- springboot
- windows
- service
- WSL
- 目錄遷移
- wsl2 踩坑
- NoSql
- mongodb
- 安裝mongodb
- redis
- redis-windows
- redis-linux
- openstack
- ====副業====
- 擼茅臺
- 網絡
- 單位換算
- DB
- clickhouse
- mac