执行这个命令,首先会从本地寻找 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)