Docker的相关命令

69 阅读2分钟

执行这个命令,首先会从本地寻找 nginx 的镜像,如果找不到,就会去从远程库拉取,拉去到本地后,然后运行。

参数说明:

  • -d 后台运行容器,并返回容器 ID

  • --name="mynginx" 为容器指定一个 mynginx 名称

  • -p 指定端口映射,格式为:主机(宿主)端口:容器端口

  • 运行完成后会返回一个 id,这个就是容器的 id

      docker run -d --name="mynginx" -p 8080:80 nginx
    
  • 浏览器访问 8080 端口就可以看到 nginx 的欢迎页面

查看所有正在运行的容器,这个图标从左到右分别是:

docker container ls
  • CONTAINER:ID 容器的 id
  • IMAGE:容器所属的镜像
  • COMMAND:运行的命令
  • CREATED:创建时间
  • STATUS:状态 UP 是正在运行
  • PORTS:是容器对外的 ip + 端口与容器内部的端口
  • NAMES:就是容器的名称,我们在运行时指定的

其它命令:

# 停止一个容器
docker stop mynginx
# 重启一个容器
docker restart mynginx
# 启动一个容器
docker start mynginx
# 删除一个容器
docker rm mynginx

# 进入容器内部
docker exec -t -i mynginx /bin/sh
# 查看容器日志 
docker logs -f mynginx
# 查看容器进程信息
docker top mynginx
# 列出容器
docker ps
# 列出本地所有的镜像
docker images
# 给镜像重命名
docker tage nginx local/nginx
  • docker pull nodejs 拉取一个镜像
  • docker search nodejs 搜索镜像
  • docker login 登录仓库
  • docker logout 登出
  • docker push nginx 将本地镜像推送到镜像仓库 推送都有命名要求的,都会用户名,所以不会镜像重名

说明:下边的命令执行时会默认去寻找当前目录的 Dockerfile 文件,根据其中的编写的内容进行构建镜像 这个过程会将当前目录所有文件上传到镜像中,作为上下文,所以说 要构建的时候千万不要把 node_module 文件放到镜像里。

# 构建一个镜像(注意后边有.)
docker build -t myimage .

# 将所有已停止的容器清空
docker container prune

删除镜像步骤:

# 停止container
docker stop $(docker ps -a -q)
# 删除所有container
docker rm $(docker ps -a -q)
# 容器关闭后可采用以下命令删除镜像
docker rmi ID
# 删除全部image
docker rmi $(docker images -q)