基本命令
Chivas-Regal
# 基本介绍
docker 命令可以去查阅 官方文档 (opens new window)
我们下面介绍几个常用的
- 镜像仓库
docker pull
:从镜像仓库中拉取镜像docker push
:将做好的镜像推送到镜像仓库中
- 本地镜像
docker images
:查看本地镜像列表docker rmi
:删除某个本地镜像docker build
:通过 dockerfile 自己构建镜像打包自己的项目docker save
:将镜像保存至本地压缩文件docker load
:将压缩文件加载为镜像
- 容器
docker run
:创建容器并在其中运行镜像docker stop
:暂停一个容器docker start
:将停掉的容器进程做启动(注意区分 docker run)docker ps
:查看当前容器们的运行状态,会给出一个表格- CONTAINER ID:容器生成时返回的容器 id 的前一部分,用作标识不同容器
- IMAGE:容器使用的镜像
- COMMAND:容器运行时内部的启动命令
- CREATED:容器创建时间
- STATUS:容器运行状态
- PORTS:容器运行的端口映射
- NAME:容器名称
docker rm
:删除容器docker logs
:查看容器运行日志docker exec
:进入到容器内部
# 实践练习
做一下拉取 Nginx 镜像、创建并运行 Nginx 容器
- 拉取 Nginx 镜像
docker pull nginx:latest
1
- 查看本地镜像列表
docker images
1
- 保存 Nginx 镜像为 tar 包
docker save -o nginx.tar nginx:latest
1
运行后就会发现当前目录下多了一个 nginx.tar 的包
- 删除 Nginx 镜像
docker rmi nginx:latest
1
删除后打开列表确定没有 nginx 镜像了
- 加载 Nginx 镜像
docker load nginx.tar
1
- 创建运行 Nginx 容器,并查看
docker run -d --name nginx -p 80:80 nginx
# 查看现在状态
docker ps
1
2
3
2
3
如果要查看更清晰的自定义的效果可以加上 --format
参数后跟格式字符串
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"
1
当然如果不想每次都写这么长的话可以给这条语句添加 alias
别名
- 停止容器
docker stop nginx
# 查看现在状态,看到的都是启动的容器
docker ps
# 要看到所有的容器要加 -a 参数
docker ps -a
1
2
3
4
5
2
3
4
5
- 再次启动容器
docker start nginx
1
- 进入 Nginx 容器
docker exec -it nginx bash
1
可以看到执行之后进入到了另一个命令行
为此我们可以进入 mysql 容器内部操作 mysql
docker exec -it mysql bash
mysql -u root -p
...
1
2
3
2
3
还有一种更方便的我们如果有要执行的命令,直接在容器外部带着命令一起 exec
即可。
docker exec -it mysql mysql -u root -p
...
1
2
2
- 删除之前的mysql容器
直接 docker rm ...
删除一个运行中的容器会失败
需要先暂停再删除
docker stop mysql2
docker rm mysql
1
2
2
或者带上 -f
参数强力删除
docker rm mysql -f
1
- 本地浏览器访问nginx
ip 是 centos 虚拟机的访问网口,port 是容器运行的进程的端口