
Docker的使用
常用Docker命令
- 容器相关
- docker run [options] [镜像名] :创建并运行容器
- –name:容器名字
- -h(–hostname) :设定容器主机名
- -d:容器可后台运行
- -p:宿主机和容器间的端口映射(不指定映射则无法外部访问)
- -v:指定挂载的数据卷(-v <本地卷路径>:<容器内部路径>,eg:-v rabbitmq_data:/var/lib/rabbitmq)
- -it:-t启用容器终端,-i允许与容器终端交互
- -e:环境变量
- –cap-add :开启指定的linux内核权限
- NET_ADMIN :网络权限
- SYS_PTRACE :允许使用 ptrace 系统调用
- –privileged :特权模式运行容器
- docker exec -it [容器名] [执行的命令(如bash)] :容器内部执行命令
- docker cp [源文件路径] [目的传输路径] :宿主容器间文件传输(容器路径为:容器名:路径)
- docker rm [容器名] :删除容器
- docker rename [当前名称] [新名称] :容器重命名
- docker ps :显示所有正在运行的容器信息
- -a :显示所有容器
- docker inspect [容器/镜像/网络/卷] :查看详情底层信息
- docker run [options] [镜像名] :创建并运行容器
- 镜像相关
- docker images :获取下载的所有镜像信息,镜像的名称是REPOSITORY:TAG
- docker search [关键字] :从仓库搜索相关镜像
- docker pull [镜像名] :下载镜像
- docker rmi [镜像名] :删除镜像
- docker build [options] [上下文路径] :构建镜像
- 参数
- -t [镜像名:TAG] :
- 上下文路径 :docker构建时需要使用的本地文件所在目录(一般用. 表示当前目录,未指定则默认DockerFile所在目录)
- docker构建时又docker引擎执行,无法访问本地文件,因此需要指定后打包该目录下所有内容
- 参数
- docker commit [容器名] [镜像名] :将指定容器制作成镜像
- docker save -o [宿主机路径] [镜像] :将镜像压缩并保存到本地(.tar 文件)
- docker load -i [镜像路径] :将保存的镜像解压至docker
- docker push [仓库地址/]镜像名[:tag] :把镜像推送到仓库
- 不指定仓库地址时,默认推送到docker.io
Docker 容器
- Docker 卷(volume,用于可持久化容器内部数据)
- windows的wsl的docker卷位置(与容器内部文件一一映射)
- 较新版本的docker的volume在windows的挂载位置是:\wsl$-desktop-desktop-disk
- 较旧版本的位置是: \wsl$-desktop-data
- windows的wsl的docker卷位置(与容器内部文件一一映射)
DockerFile
Docker 的镜像是分层的,每执行一条指令都会建立新一层(这一层只包含该指令所带来的文件系统变更) - RUN指令合并可以有效减少镜像层数,避免镜像体积膨胀
常用文件指令
- FROM [镜像]:指定构建新镜像所基于的基础镜像,后续指令基于该镜像执行
- ARG [变量]:指定构建时的变量
- 执行docker build时可 通过 –build-arg key=val 赋值变量(覆盖原本的值) ,每个–build-arg只传递一对key-value
- ARG 变量在FROM之前,则在FROM命令后无效(这种变量一般用于指定from 镜像的版本等参数)
- RUN [shell命令] :执行shell命令
- COPY [源路径] [目标路径]:将文件或目录复制到镜像中
- ENV [key=value] :在容器内部设置环境变量
- WORKDIR [path] :设置后续指令的工作目录
附:Docker的安装
D盘安装:cmd执行:“D:-installer.exe” install –installation-dir=“D:_Soft” (安装包 install –installation-dir=目标安装路径(需要先创建好相应文件夹)
settings的资源部分,更改镜像保存位置为D盘
添加docker镜像(setting的docker 引擎部分)
1
2
3
4"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]