一、常用指令
拉取镜像:docker pull "镜像名称"
比如:docker pull library/hello-world
启动容器:docker run "镜像名称"
比如:docker run library/hello-world
docker run -it ubuntu -i是可交互模式,-t是为容器分配一个伪终端
docker run -itd ubuntu -d后台运行容器
查看容器:docker ps -a
进入容器:docker exec -it "容器id"
停止容器:docker stop "容器id"
删除容器:docker rm "容器id1" "容器2"...
删除镜像:docker rmi "镜像id"
二、自己的镜像
启动容器,暴漏端口:docker run -it -p 8000:8000 ubuntu bash
在ubuntu中:
更新软件源:apt update
下载curl:apt install -y curl
安装code-server:curl -fsSL code-server.dev/install.sh | sh
运行code-server:code-server
更改端口: code-server --bind-addr=0.0.0.0:8000 --auth=none
这样在容器外部就可以使用vscode了。
二、做镜像的方式
通过交互式把容器打包成镜像
将容器打包成镜像:docker commit "容器id"
docker run 的作用是将image运行在一个container中
docker commit 的作用是将当前容器打包成一个image
执行commit后查看images:docker images
从当前的ubuntu中退出:exit
启动自己的镜像:docker run -it -p 8000:8000 90b63d256ec1 code-server --bind-addr=0.0.0.0:8000 --auth=none
上面启动的方式容器运行在前台,如果终端关闭了,它也就停止了。
如何在后台运行:
docker run -it -p 8000:8000 --entrypoint "code-server" -d 90b63d256ec1 --bind-addr=0.0.0.0:8000 --auth=none
关键指令参数解释:
entrypoint的含义:应什么样的命令去启动这个容器
d:在后台运行
查看启动日志:docker logs "容器id"
如何将镜像上传到镜像仓库中
镜像的组成:<repo>/<image>:<tag>
如果有repo是私有仓库,如果没有是官方仓库
登录账号:docker login -u xxx -p xxx
tag指令起别名: docker tag "镜像id" docker.cnb.cool/ai-application-2025/cloud-development:latest
上传镜像:docker push docker.cnb.cool/ai-application-2025/cloud-development:latest
删除所有镜像和容器
启动自己上传的镜像 docker run -it -p 8000:8000 --entrypoint "code-server" -d "镜像地址" --bind-addr=0.0.0.0:8000 --auth=none
通过dockerfile自动化构建一个镜像
通过编程的方式,创建镜像
创建Dockerfile文件
添加指令,和上面用容器创建镜像的指令一样
# 从仓库中拉去ubuntu镜像
FROM ubuntu:latest
# 更新并安装curl
RUN apt update && apt install -y curl
# 下载浏览器版vscode
RUN curl -fsSL https://code-server.dev/install.sh | sh
构建镜像:docker build -t docker.cnb.cool/ai-application-2025/cloud-development:v1.0.0 .
"."代表是从当前所在环境获取构建镜像相关文件
docker build -t 镜像名:标签 构建路径
然后推送到仓库中
好处就是方便,比如需要安装vscode插件,重新发布镜像,只需要在指令中
修改dockerfile文件
FROM ubuntu:latest
RUN apt update && apt install -y curl
RUN curl -fsSL https://code-server.dev/install.sh | sh
RUN code-server --install-extension golang.go
然后再构建:docker build -t docker.cnb.cool/ai-application-2025/cloud-development:v1.0.1 .
因为之前构建过一次了,再次构建会复用第一次构建的,所以比较快
再推送,可以在推送之前启动容器查看插件是否安装生效