使用
运行容器 | 启动参数 启动脚本 例3 |
查看运行容器 | 例1 |
删除容器 | 例2 |
更新容器 | 例5 |
修改时区 | 例10 |
重启容器 | 例6 |
执行命令 | 例7 |
进入容器 | 例8 |
查看启动参数 | 例9 |
启动参数
选项简写 | 选项 | 说明 |
-d | –detach | 在后台运行容器,并且打印容器id。 |
-i | –interactive | 即使没有连接,也要保持标准输入保持打开状态,一般与 -t 连用。 |
-t | –tty | 分配一个伪tty,一般与 -i 连用。 |
–restart | 指定容器停止后的重启策略
| |
–name | 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字 | |
-e | –env=[] | 指定环境变量,容器中可以使用该环境变量
|
-p | 指定端口映射,格式为:主机(宿主)端口:容器端口 | |
-v | –volume=[] | 把数据文件挂载到宿主机的路径 |
-l | –label list | 在容器上设置元数据 |
-m | –memory | 指定容器的内存上限,例如 100M, 2G。 |
–memory-swap | 设置 内存+swap 的使用限额 | |
-c | –cpu-shares=0 | 设置容器CPU权重,在CPU共享场景使用 |
-h | –hostname=“” | 指定容器的主机名 |
–net | 容器网络设置 | |
–privileged=false | 指定容器是否为特权容器,特权容器拥有所有的capabilities | |
–rm | 容器停止后自动删除容器 | |
-P | 随机端口映射,容器内部端口随机映射到主机的端口 | |
–link=[] | 指定容器间的关联,使用其他容器的IP、env等信息 |
- 使用镜像创建一个容器,该镜像必须与 Docker 宿主机系统架构一致,例如x86_64 架构的系统中只能使用x86_64的镜像创建容器。
启动脚本
bash的docker启动脚本
#!/bin/bash
container="dbtool"
image="registry.cn-hangzhou.aliyuncs.com/xxx/beta:dbtool"
echo "停止容器 $container..."
docker container stop $(docker container ls -q --filter name=^$container$)
echo "删除容器 $container..."
docker rm $container
echo "删除镜像 $image..."
docker rmi $image
echo "拉取镜像 $image..."
docker pull $image
docker run -itd --name $container -p 44360:80 --restart=always $image
例1
查看运行容器
docker ps
运行结果
- –format参数可以实现格式化输出自定义列
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"
例2
指定id或名称删除
docker rm <CONTAINER ID|NAME> <CONTAINER ID|NAME>
删除所有容器
docker rm -f $(docker ps -aq)
例3
启动tomcat
docker run -it -p 8888:8080 tomcat
例4
复制文件到容器
docker ps -a
docker inspect -f '{{.ID}}' store-dev
docker cp 文件全路径 容器长ID:文件全路径
例5
设置容器为开机自启
docker update --restart=always 容器名
例6
docker restart admin-mongo
例7
有后台的centos容器在运行,在不进入centos情况下执行centos的命令
docker exec -t 5bb87e918b0e ls -l /etc
例8
docker exec -it 容器ID /bin/bash
例9
查看运行容器的docker run启动参数
yum install -y python-pip
pip install runlike
runlike -p <容器名>|<容器ID>
例10
有时需要查看容器中的日志,但是日志的时间和宿主机不在同一个时区,查看不方便,需要修改时区
容器启动参数中添加环境变量
-e TZ=Asia/Shanghai
将宿主机上的/etc/timezone
和/etc/localtime
挂载到容器中,这样可以保持容器和宿主机时区和时间一致