docker 常用命令

发布时间 2023-04-24 18:38:39作者: 我的天啊~

docker 常用命令

docker ps 查看当前运行中的容器
docker images 查看镜像列表
docker rm container-id 删除指定 id 的容器
docker stop/start container-id 停止/启动指定 id 的容器
docker rmi image-id 删除指定 id 的镜像
docker volume ls 查看 volume 列表
docker network ls 查看网络列表

docker run -d -p 6379:6379 --name redis redis:latest  下载镜像,创建容器并运行

docker exec -it cdda31f69770 /bin/sh  进入容器内部

 

几种挂载方式

  • bind mount 直接把宿主机目录映射到容器内,适合挂代码目录和配置文件。可挂到多个容器上
  • volume 由容器创建和管理,创建在宿主机,所以删除容器不会丢失,官方推荐,更高效,Linux 文件系统,适合存储数据库数据。可挂到多个容器上
  • tmpfs mount 适合存储临时文件,存宿主机内存中。不可多容器共享。

文档参考:https://docs.docker.com/storage/

bind mount 方式用绝对路径 -v D:/code:/app

volume 方式,只需要一个名字 -v db-data:/app

示例:

docker run -p 8080:8080 --name test-hello -v D:/code:/app -d test:v1

-p 映射容器内端口:宿主机
--name 容器名字
-d 后台运行
命令参考文档:https://docs.docker.com/engine/reference/run/

 

基于dockerfile创建镜像

编译 docker build -t test:v1 .

-t 设置镜像名字和版本号
命令参考:https://docs.docker.com/engine/reference/commandline/build/

基于容器创建镜像

将容器里面运行的程序及运行环境打包生成新的镜像
docker commit [选项] 容器ID/名称 仓库名称:[标签]
-m:说明信息
-a:作者信息
-p:生成过程中停止容器的运行

docker commit -m 新的镜像copy -a me cdda31f69770 docker.ui:v1

查看镜像提交历史

docker history docker.ui:v1

 

 

运行镜像,创建容器并运行
运行 docker run -p 8080:8080 --name test-hello test:v1

-p 映射容器内端口到宿主机
--name 容器名字
-d 后台运行
命令参考文档:https://docs.docker.com/engine/reference/run/

 

FROM node:11
MAINTAINER easydoc.net

# 复制代码
ADD . /app

# 设置容器启动后的默认运行目录
WORKDIR /app

# 运行命令,安装依赖
# RUN 命令可以有多个,但是可以用 && 连接多个命令来减少层级。
# 例如 RUN npm install && cd /app && mkdir logs
RUN npm install --registry=https://registry.npm.taobao.org

# CMD 指令只能一个,是容器启动后执行的命令,算是程序的入口。
# 如果还需要运行其他命令可以用 && 连接,也可以写成一个shell脚本去执行。
# 例如 CMD cd /app && ./start.sh
CMD node app.js