创建容器
基本命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用选项
-d:在后台运行容器并返回容器ID
docker run -d ubuntu
-i:保持标准输入(stdin)打开,通常与-t
一起使用
docker run -i ubuntu
-t:分配一个伪终端
docker run -it ubuntu
--name:为容器指定一个名字,方便后续引用
docker run --name my-container ubuntu
-p:将宿主机的端口映射到容器的端口
docker run -p 8080:80 nginx
-e:设置环境变量
docker run -e MY_ENV_VAR=value ubuntu
-v:将宿主机的目录或文件挂载到容器中
docker run -v /host/path:/container/path ubuntu
--mount:用于将文件或目录挂载到容器中
可以用于三种不同类型的挂载:绑定挂载、数据卷和 tmpfs 挂载
docker run --mount type=<类型>,source=<源>,target=<目标> [其他选项] <镜像>
type:bind、volume、tmpfs
bind:绑定挂载将宿主机的文件或目录绑定到容器中的某个目录,通常用于开发环境,以便在容器中可以直接访问和修改宿主机上的文件
bind mount 直接将宿主机的某个目录或文件挂载到容器中,而这个目录或文件完全是由宿主机的文件系统管理的,当容器被删除时,Docker 不会自动删除或影响宿主机上这些资源的内容
volume:数据卷是 Docker 管理的专用存储,独立于容器生命周期。即使容器被删除,卷中的数据依然会保留
tmpfs:将数据存储在内存中,而不写入磁盘。当容器停止时,tmpfs
数据将丢失,适用于敏感数据或临时文件
例子1:docker run --mount type=bind,source=/path/on/host,target=/path/in/container nginx
例子2:docker run --mount type=volume,source=my-volume,target=/data nginx
例子3:docker run --mount type=tmpfs,target=/app tmpfs
--rm:容器停止时自动删除容器
docker run --rm ubuntu
--network:指定容器连接到的网络
docker run --network my-network ubuntu
--memory:设置容器的内存限制
docker run --memory 512m ubuntu
一些例子:
运行一个交互式的Ubuntu容器:docker run -it --name my-ubuntu ubuntu
在容器中运行一个命令:docker run --name my-alpine alpine echo "Hello, Docker!"
运行一个容器并将宿主机目录挂载到容器中:docker run -v /host/data:/container/data --name my-volume-container ubuntu
在容器中运行一个Web服务并映射端口:docker run -d -p 8080:80 --name my-web-server nginx