[h’程序员’] Docker
Docker 是一个容器化平台,用于开发、部署和运行应用
一键安装命令
#安装docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Docker 容器相关命令
查看容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有容器, 包括已经退出的
创建并启动容器
docker run 参数 版本:版本号 </bin/bash> # 默认为/bin/bash
- 参数说明:
-i
:保持容器运行。通常与-t
同时使用。加入it
这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。-t
:为容器重新分配一个伪输入终端,通常与-i
同时使用。-d
:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec
进入容器,示例:docker exec -it c2 /bin/bash
。退出后,容器不会关闭。-it
:创建的容器一般称为交互式容器。-id
:创建的容器一般称为守护式容器。--name
:为创建的容器命名。-p
:-p <宿主机端口>:<docker容器虚拟机端口>
。
-it
启动交互式容器-d
启动守护式容器。如果容器中的应用应该以守护的方式运行,那就会导致容器的自杀,因为容器觉得当前已经没有什么事情可做了。此时需要结合-it -d
,-it
让程序觉得还有事,-d
表示在后台运行(或进入容器终端后,使用Ctrl+P+Q
也可以退出且保持在后台运行)。
进入容器
-
exec 方式:进入容器后,使用
exit
退出后容器不会停止。docker exec 参数 # 退出容器,容器不会关闭 # 示例:docker exec -it c_mysql /bin/bash
-
attach 方式:与
exec
不同,进入容器后,使用exit
退出后容器会停止。使用Ctrl+P+Q
退出交互模式并保持容器运行。docker attach 容器ID
停止容器
docker stop 容器名称
#全部停止示例:docker stop `docker ps -aq`
#强制停止:docker kill 容器名称或ID
启动容器
docker start 容器名称
删除容器
如果容器处于运行状态,删除将失败,需要先停止容器才能删除。
docker rm 容器名称
#删除所有容器:docker rm `docker ps -aq`
#强制删除:docker rm -f 容器名称或ID
查看容器信息
docker inspect 容器名称
查看容器中的进程
docker top 容器ID
CP命令
可以将容器中的文件复制到宿主机中:
docker cp 容器ID:/aa ./
导入导出命令
导出命令不会保留容器状态,容器中之前运行创建的文件会一同导出为镜像文件。导入后,重新运行容器时,之前里面的服务不会自动启动(例如 tomcat)。
docker export 容器ID > XXX.tar
cat XXX.tar | docker import - zhuangjie/ubuntu:7
需要注意的是,导入后,运行容器时需要加上
/bin/bash
。
另外,docker save
和 docker load
命令可用来导入和导出镜像:
docker save -o XXX.tar 镜像ID
docker load -i XXX.tar