目录
Docker 容器是一种轻量级的虚拟化技术,允许你将应用程序及其依赖项打包在一起,形成一个独立的、可移植的单元。下面将详细介绍 Docker 容器的使用方法,包括容器的启动、停止、管理等基本操作。
1. 启动容器
启动容器通常使用 docker run
命令,它可以创建并启动一个新的容器。
基本格式
bash
深色版本
1docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
示例
-
启动一个交互式的 bash shell:
深色版本
1docker run -it ubuntu:latest /bin/bash
这里
-i
表示保持 STDIN 打开,-t
表示分配一个伪 tty。 -
启动一个 Nginx 服务器:
深色版本
1docker run -d --name mynginx nginx:latest
这里
-d
表示在后台运行容器,--name
指定容器的名称。 -
启动并映射端口:
深色版本
1docker run -d --name mynginx -p 8080:80 nginx:latest
这里
-p
用于指定端口映射,格式为host_port:container_port
。
2. 查看容器状态
使用 docker ps
命令来查看正在运行的容器列表。
示例
bash
深色版本
1docker ps
要查看所有容器(包括已停止的),可以使用:
bash
深色版本
1docker ps -a
3. 停止容器
使用 docker stop
命令来停止一个或多个容器。
示例
bash
深色版本
1docker stop mynginx
如果容器没有响应 stop
命令,可以使用 docker kill
强制停止容器:
bash
深色版本
1docker kill mynginx
4. 重启容器
使用 docker restart
命令来重启容器。
示例
bash
深色版本
1docker restart mynginx
5. 删除容器
使用 docker rm
命令来删除一个或多个容器。
示例
bash
深色版本
1docker rm mynginx
要删除所有已停止的容器,可以使用:
bash
深色版本
1docker rm $(docker ps -a -q)
6. 连接到容器
使用 docker exec
命令可以连接到一个正在运行的容器。
示例
bash
深色版本
1docker exec -it mynginx /bin/bash
这里 -i
和 -t
选项使得容器的 shell 保持打开状态,并分配一个伪 tty。
7. 查看容器的日志
使用 docker logs
命令查看容器的日志。
示例
bash
深色版本
1docker logs mynginx
可以使用 -f
选项来跟踪日志输出:
bash
深色版本
1docker logs -f mynginx
8. 管理容器的文件系统
使用 docker cp
命令可以将文件从主机复制到容器,或者从容器复制到主机。
示例
将主机上的文件复制到容器:
bash
深色版本
1docker cp path/to/file mynginx:/path/in/container
将容器内的文件复制到主机:
bash
深色版本
1docker cp mynginx:/path/in/container path/to/local/directory
9. 管理容器的网络
映射端口
使用 -p
选项来映射容器的端口到主机的端口:
bash
深色版本
1docker run -d --name mynginx -p 8080:80 nginx:latest
创建自定义网络
使用 docker network create
命令来创建自定义网络:
bash
深色版本
1docker network create mynetwork
然后将容器连接到网络:
bash
深色版本
1docker run -d --name mynginx --network mynetwork nginx:latest
10. 使用 Docker Compose
Docker Compose 用于定义和运行多容器 Docker 应用程序。
创建 docker-compose.yml
文件
yaml
深色版本
1version: '3'
2services:
3 web:
4 image: nginx:latest
5 ports:
6 - "8080:80"
启动服务
bash
深色版本
1docker-compose up -d
停止服务
bash
深色版本
1docker-compose down
11. 使用 Docker 文件系统
Docker 容器的文件系统通常是临时的,但你可以使用卷来持久化数据。
创建卷
bash
深色版本
1docker volume create mydata
将卷挂载到容器
bash
深色版本
1docker run -d --name mydb -v mydata:/var/lib/mysql mysql:latest
12. 管理容器的环境变量
可以使用 -e
选项来设置容器的环境变量:
bash
深色版本
1docker run -d --name myapp -e MY_VAR=my_value myimage
13. 使用 Dockerfile 自定义镜像
如果你需要自定义镜像,可以创建一个 Dockerfile。
示例 Dockerfile
dockerfile
深色版本
1FROM ubuntu:latest
2WORKDIR /app
3COPY . .
4CMD ["echo", "Hello from Docker!"]
构建镜像
bash
深色版本
1docker build -t my-custom-image .
运行自定义镜像
bash
深色版本
1docker run my-custom-image
总结
通过上述示例,你应该能够熟悉 Docker 容器的基本使用方法。Docker 容器提供了一种方便的方式来部署和管理应用程序及其依赖关系,使得应用程序可以在任何环境中一致地运行。希望这些示例能帮助你更好地理解和使用 Docker 容器。随着实践的深入,你可以探索更多高级特性,如网络配置、健康检查、自定义日志驱动等。