Docker使用笔记
1. 安装与设置
1.1. 安装 Docker
Ubuntu
sudo apt install docker
Mac
brew install --cask --appdir=/Applications docker
1.2. 安装NVIDIA-Docker
稍候补充
1.3. 安装TensorFlow Docker
稍候补充
1.4. 设置
在Docker Engine中加入如下内容
{"features": {"buildkit": true},"experimental": false,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]
}
2. 镜像制作
2.1. 基础镜像
# 公开的ubuntu镜像
docker pull ubuntu:latestdocker pull ubuntu:18.04# 公开的centos镜像
docker pull centos:latest
2.2. Dockerfile
用于配置镜像中的操作系统环境
From ubuntu:latest#meta-info
LABEL maintainer="mahuateng@bytedance.com" \description="I am Pony Ma" \version="1.0.0"###############################
# 工具安装 #
###############################
RUN apt-get update && apt-get install -y --no-install-recommends \gcc \g++ \build-essential########################################
# prepare pyfile
########################################
COPY test.py /app/
2.3. 创建镜像
docker build -t [image_name] .
注意后面的点,表示存放镜像的目录,也可以指定其它目录
2.4. 运行镜像
执行下面命令
sudo docker run --rm -it -v $PWD:/main [image_name] [command] [args]
其中-v表示docker文件夹与本地文件夹的映射,上面的例子中把本地当前目录PWD映射给docker起名叫main
2.5. 提交镜像
docker ps -a
运行该命令后会看到刚才运行时的容器号,有时可能由于某种原因看不到这个容器号,这时只需再开一个终端运行
sudo docker run --rm -it -v$PWD:/main [image_name] [command] [args]
进入系统后,运行ls或cd等命令即可,此时在原来的终端再运行docker ps -a就会显示容器号,ctrl +d退出
docker commit -a "[user name]" -m "[comments]" [container id] [image_name]
-a 表示作者
-m 表示消息
后面两个分别是容器号和镜像名称
2.6. 推送镜像
docker push [image_name]
2.7. 云端测试
sudo docker run --rm -it -v$PWD:/main --net='host' [image_name] [command] [args]
这个命令与运行时的命令差不多,只是多了-net='host'
3. 使用
启动
function get_volumes() {local volumes=" -v $HOME/.cache:/home/${DOCKER_USER}/.cache"mkdir -p $HOME/workspace/volumes="${volumes} -v /dev:/dev \-v /lib/modules:/lib/modules:ro \-v $HOST_WORKSPACE:/home/${DOCKER_USER}/workspace:rw \-v $HOME/.ssh:/home/${DOCKER_USER}/.ssh \-v /tmp/.X11-unix:/tmp/.X11-unix:rw \-v /usr/src:/usr/src \-v /media:/media:rw \-v /dev/shm:/dev/shm"echo "${volumes}"
}function run_container() {local display=""local LOCAL_HOST=$(hostname)local USER_NAME=${USER}if [[ -z ${DISPLAY} ]]; thendisplay=":0"elsedisplay="${DISPLAY}"fiecho $IMAGE_NAMElocal image=$(docker images | grep "$IMAGE_NAME" | head -1 | awk '{print $1'})info "docker command: ${docker_command}"info "Start \"$image\" ..."if [ $HOST_PLATFORM == "Darwin" ]; thenerror "Mac is not supported"exit 1fidocker run -itd --privileged --rm --name ${CONTAINER_NAME} \-e DISPLAY=unix$display \-e LC_ALL=C.UTF-8 \${nvidia_docker_env} \$(get_volumes) \--ipc=host \--net host \--shm-size 4G \--add-host ${LOCAL_HOST}:127.0.0.1 \--hostname ma-hua-teng \--pid=host \--device /dev/dri \${docker_runtime} \$image:$image_version \/bin/bashsuccess "Running......."
}
参考文献
docker command not found: Fix and Cause explained
Docker使用笔记相关推荐
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)--基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
- 【Docker】Docker学习笔记:安装部署
Docker 是实现轻量级的操作系统虚拟化解决方案. Docker目前已经支持非常多的Linux平台,Ubuntu.Red Hat企业版Linux.Debian.CentOs.Fedora.Oracl ...
- Docker学习笔记 之 Docker安装配置使用
简介 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare met ...
- docker学习笔记(四)使用docker搭建环境
参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(二)docker常用命令 docker学习笔记(三)镜像 docker学习笔记 ...
- docker学习笔记(二)docker常用命令
参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(三)镜像 docker学习笔记(四)使用docker搭建环境 docker学习 ...
- docker学习笔记(三)镜像
参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(二)docker常用命令 docker学习笔记(四)使用docker搭建环境 ...
- docker学习笔记(五)如何创建自己的阿里云镜像仓库(这是2021版的阿里云教程)
参考:汤小洋老师的教学视频 docker学习笔记(一)[docker 介绍.卸载.安装.配置加速] docker学习笔记(二)docker常用命令 docker学习笔记(三)镜像 docker学习笔记 ...
- Docker入门笔记(1)
Docker入门笔记(1) 1.安装Docker yum -y install docker-ce 2.查看Docker版本 [root@localhost ~]# docker -v Docker ...
- 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)
长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...
- 狂神 Docker学习笔记 从基础到进阶 一步到位
Docker 学习笔记 感谢狂神的分享.附上B站视频链接. https://www.bilibili.com/video/BV1og4y1q7M4?from=search&seid=92256 ...
最新文章
- mysql mediumtext longtext
- 糖尿病动物模型知识点整理
- linux中断的上半部和下半部
- jio文件 久其_功能强大的Windows文件管理器工具
- 嵌入式Jetty和Apache CXF:借助Spring Security来保护REST服务
- windows 2012 AD域报错ladp非法绑定
- webstorm 注册码,亲测可用
- 28.课时28.【Django模块】with标签使用详解(Av61533158,P28)
- MFC小笔记:简单画图
- python银行排队系统_python-我需要基于Web的系统的消息/排队解决...
- C# 实体类序列化与反序列化一 (XmlSerializer)
- 微信群如何实现语音多群转播
- python制作微信聊天机器人:10行代码让你秒变撩妹达人
- WPS国际版2019 中文
- 北京强化养老行业诚信自律 从业者禁止侮辱、虐待老人
- “搭讪学” 这不仅仅是泡妞
- VUE学习(六) 高德地图常用功能总结
- Java核心技术----枚举类型与泛型
- Thinkphp 表名下滑杠处理
- SuperMap GIS的TIN地形数据处理十问