基本命令
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 是容器运行的进程的端口
