新建容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- —name=”容器新名字”:为容器指定名字。
- -d:后台运行容器并返回容器ID,即启动守护式容器(后台运行)。
- -i:以交互模式运行容器,通常与-t同时使用。
- -t:为容器重新分配一个伪输入终端,通常与-i同时使用。
- -P:随机端口映射,大写P
- -p:指定端口映射,小写P | 参数 | 说明 | | —- | —- | | -p hostPort:containerPort | 端口映射 -p 8080:80 | | -p ip:hostPort:containerPort | 配置监听地址 -p 10.0.0.100:8080:80 | | -p ip::containerPort | 随机分配端口 -p 10.0.0.100::80 | | -p hostPort:containerPort:upd | 指定协议 -p 8080:80:tcp | | -p 81:80 -p 443:443 | 指定多个 |
启动交互式容器
进入容器bash交互,退出时要注意exit和ctrl+pq的区别。docker run -it ba6acccedd29 bash
- ba6acccedd29:镜像id,也可以用镜像名称
-
启动守护式容器
若容器中有守护进程,不需要开启终端,只需要它在后台运行,可以通过-d指定该容器进入后台运行模式。
注意:若容器中既无守护进程又无前台进程(bash),docker会将其关闭。
例如使用docker run -d ubuntu,再用docker ps查看会发现该容器并不在运行状态。查看容器
docker ps [OPTIONS]
不加参数执行docker ps会显示运行中的容器。options
-a:列出所有容器,包括运行中的和不在运行中的。
- -l:列出最近创建的容器。
- -n:列出最近n个创建的容器。
-
案例
docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESa7e35e46a7a7 ubuntu "/bin/bash" 6 seconds ago Up 5 seconds wizardly_keldysh682740e19660 cloudnas/clouddrive "/start.sh --user wi…" 22 hours ago Up 6 hours clouddrive
查看指定容器
查看日志
查看进程
查看内部细节
退出容器
exit
在容器命令行状态下输入exit(或按ctrl+d)退出容器。
注意:退出时若该容器后台无守护进程,那么它会停止运行。ctrl+p+q
在容器命令行状态下依次按ctrl+p和ctrl+q可以退出容器且保留bash,容器不会停止运行。
重启容器
docker restart [OPTIONS] CONTAINER [CONTAINER...]options
-
停止容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]options
-
强制停止容器
docker kill [OPTIONS] CONTAINER [CONTAINER…]
options
-
启动已停止的容器
docker start [OPTIONS] CONTAINER [CONTAINER...]options
-
进入运行中的容器
exec
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]注意事项
在容器中打开新的终端,并启动新的bash。用exit退出不会导致容器停止。
案例
docker exec -it 335fcc77fe93 bashattach
注意事项
直接进入容器启动命令的终端,不开启新的bash。用exit退出会导致容器停止。
推荐使用exec
进入容器后退出时,建议要用
docker ps检查它的运行状态。删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
不可删除正在运行中的容器,除非加-f强制删除。options
-f:强制删除
- -l:删除指定链接
- -v:删除与容器关联的匿名卷
删除多个容器
docker rm 容器1 容器2删除全部容器
docker rm $(docker ps -q)导出容器
export export 容器ID > 文件名.tar
将容器中的内容导出到tar文件,做备份。案例
docker export 1d1f5bbd10f8 > ubuntu.tar导入备份到镜像
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
将容器备份tar文件导入到指定镜像,再运行该镜像即可还原之前的备份。案例
cat ubuntu.tar | docker import - windf/ubuntu docker images REPOSITORY TAG IMAGE ID CREATED SIZE windf/ubuntu/1 latest 991bf4060396 About a minute ago 72.8MB redis latest 7614ae9453d1 5 months ago 113MB ubuntu latest ba6acccedd29 7 months ago 72.8MB容器与主机相互拷贝文件
从容器拷贝文件到主机
docker cp 容器ID:容器内路径 目的主机路径案例
docker cp 1d1f5bbd10f8:/tmp/a.txt ~/从主机拷贝文件到容器
docker cp 主机路径 目的容器ID:容器内路径案例
docker cp ~/a.txt 1d1f5bbd10f8:/tmp/
