# 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