学习docker笔记

编程入门 行业动态 更新时间:2024-10-18 02:41:53

学习docker<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记"/>

学习docker笔记

学习docker笔记

macOS配置镜像加速

点击Docker Desktop应用图标-> Perferences,在左侧导航菜单选择 Docker Engine,在右侧编辑 json 文件。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

{"registry-mirrors": ["",""]
}

使用镜像

常用命令

# 拉取镜像
docker pull [option] [address[:port]/]repository[:tag]
# 运行镜像
docker run -ti ubuntu:18.04 /bin/bash
# 列出镜像
docker image ls
# 查看镜像、容器、数据卷所占用的空间
docker system df
# 删除<none>镜像
docker image prune
# 列出中间层镜像
docker image ls -a
# 删除本地镜像,<image>可以是镜像短ID、长ID、镜像名、镜像摘要
docker image rm [option]<image1>[<image2>...]
# 启动已终止的容器
docker container start
# 终止一个容器
docker container stop
# 导入和导出容器
docker export <container id> > test.tar
docker import <url> test/test:tag #cat test.tar | docker import - test/test:tag
# 删除容器
docker container rm
docker container prune # 清除所有终止的容器
# 推送
docker push repository:tag	#repository需要和你的仓库名一致

docker run的常用参数

-t: 让docker分配一个伪终端

-i: 让容器的标准输入保持打开

-d: 守护态运行,返回容器ID

-v: 绑定一个卷

-p:指定端口映射,大写则随机映射

-net: 指定容器的网络连接类型, 支持bridge/host/none/container

–expose: 开放一个端口或者一组端口

使用Dockerfile构建镜像

ARG <参数名>[=默认值]
FROM <image>
RUN command #在docker build时运行
COPY [--chown=<user>:<group>] <src> <dst>
ADD #与COPY类似,源文件为.tar gzip bzip2 xz则自动复制并解压到目标路径; 不解压的前提,无法复制tar压缩文件
USER <username>[:usergroup] # 必须存在
WORKDIR dir #切换当前执行的工作目录
ENTRYPOINT ["execute", "param1", ...] # 容器进入时执行的命令
CMD <shell command> #在docker run时运行
CMD ["execute", "param1", "param2", ...]
CMD ["param1", "param2", ...] # 为ENTYPOINT指令提供默认参数
ENV <key> <value> # 设置环境变量
ENV <key1>=<value1> <key2>=<value2> ...
EXPOSE port # 暴露端口
# 构建镜像
docker build -t name:tag .

例子

一个使用docker的简单例子

# 登陆docker hub
docker login -u 'user name' -p 'password'# 拉取ubuntu:18.04镜像
docker pull ubuntu:18.04# 查看镜像
docker image ls# 进入镜像
# -ti 分配一个终端并让容器标准输入始终打开
# -v ${dir}:${docker dir} 
# {dir}为主机的某个路径,{docker dir}为docker容器里的路径
# 将主机的dir映射到docker dir, 在dir中或docker dir中修改文件,都会立刻生效,无论是在主机还是在docker中。
# --net=host 网络使用主机网络
docker -ti --net=host -v /home/dandelion/docker_dir:/home/dandelion ubuntu:18.04 /bin/bash# 在容器中do work
...# 退出容器,容器里除了在docker dir中修改的文件生效,其他任何操作都不会保留,在下次重新进入容器时,环境还是ubuntu:18.04
exit

使用dockerfile基于ubuntu:18.04构建一个cpp开发环境,并上传到docker hub

# 一个简单的dockerfile# 基于ubuntu:18.04
FROM ubuntu:18.04# 更新源,安装软件
RUN apt-get update && apt-get install -y git g++ gdb cmake vim# 从主机复制一些文件到docker中
COPY ~/.vim* /root/# 设置环境变量
ENV LANG=C.UTF-8

构建镜像上传

# user为你的docker hub账号ID
# demo为docker hub的仓库
# cpp为镜像的tag
docker build user/demo:cpp .# 推送至docker hub
docker push user/demo:cpp

更多推荐

学习docker笔记

本文发布于:2024-02-06 12:35:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749159.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   docker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!