Docker 笔记
程序员文章站
2022-03-12 12:23:01
...
简介
Docker对于运维的意义在于通过镜像容器进行快速的部署。对于我而言则是Windows,Mac OSX和Ubuntu的环境统一。只需要专注与应用。
Macbook安装Docker
安装阿里云加速器
- 复制地址您的专属加速器地址,将地址填入Docker的配置中,路径如下:Preferences–>Daemon–>Basic–>Registry mirrors,然后重启
Windows安装Docker
1.安装docker-toolbox
- 下载安装docker-toolbox
- 启动docker-quickerstart-terminal
有时会遇到boot2docker.iso不是最新,连接github下载失败的情况;可通过迅雷直接将boot2docker.iso下载到本地后,放入指定文件目录解决
- 测试是否安装成功:在终端中输入
docker run hello-world
Docker 镜像命令
存出镜像 docker save
docker save -o hello-world.tar hello-world:latest
载入镜像 docker load
docker load --input hello-world.tar
删除镜像
- 首先删除依赖镜像的容器
docker rm <container id>
- 删除镜像
docker rmi <image id>
Docker 容器命令
新建容器
docker create -it hello-world:latest
启动容器
docker start <container id>
新建并启动容器
docker run
#-t 表示打开伪终端
#-i 让容器的标准输入打开
守护状态运行容器
docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done
#-d 守护状态运行
使用docker logs 获取容器输出信息
终止容器
docker stop <container id>
进入守护状态的容器
attach
exec
nsenter
删除容器
docker rm <container id>
强制删除容器
docker rm -f <container id>
导出容器
docker export <container id>>target.tar
导入容器
cat target.tar |docker import - <repository>:tag
docker 仓库命令
登录
docker login
搜索镜像
docker search keyword
下载镜像
docker pull centos
从国内Docker pool下载
docker pool dl.dockerpool.com:5000/ubuntu:12.04
基于已有的镜像创建镜像
docker commit
#docker commit -m 'my comment' -a 'sunq' <container-id> repo:tag
数据卷
使用DaoCloud镜像源
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile
exit
docker-machine restart default
Docker安装Caffe
方法一:手动安装
- 下载Ubuntu
docker pull ubuntu:16.04
- 新建启动容器
sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t ubuntu:16.04 /bin/bash
建立本地与容器数据卷的映射
sudo docker run --dns 8.8.8.8 --dns 8.8.4.4 --name ubuntu_caffe -i -t -v /data:/data ubuntu:16.04 /bin/bash
- 执行apt-get安装基础软件
- 安装vim
apt-get update && apt-get install -y vim
#安装ananconda需要bzip2
apt-get install -y bzip2
- 按照Dockerfile安装剩余软件
通过Github中Caffe的dockerfile可安装剩余软件
方法二:直接利用Dockerfile生成镜像
- 从Github下载Dockerfile
- 在dockerfile所在目录执行
docker build . -t ubuntu_caffe_cpu
Docker中Ubuntu安装git
apt-get update && apt-get install -y git
Docker安装使用juypter notebook
- 内部安装
pip install jupyter
jupyter notebook --generate-config
修改.jupyter/jupyter_notebook_config.py
# Notebook config
c = get_config()
c.IPKernelApp.pylab = 'inline'
c.NotebookApp.ip='*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:生成填写'
c.NotebookApp.port = 8888
- 保存镜像
docker commit -a 'sunq' -m 'add remote access to jupyter notebook' <container-id> caffebookcpu:latest
- 启动虚拟机
docker run --name 'caffebook' -it -p 8888:8888 -v /Users/sunq/docker/caffedata:/workspace caffebookcpu bash
在bash中运行
jupyter notebook
- 在浏览器中访问
http://localhost:8888
如果使用了docker-toolbox中的docker-machine,则localhost替换为对应的docker-machine的ip
虚拟机
登录虚拟机
docker-machine ssh default
优化
Windows下修改虚拟机的虚拟硬盘位置(C盘到D盘)
- 停止虚拟机
- 打开virtualbox,复制虚拟盘disk.vmdk到D盘
- 修改虚拟硬盘位置
参考
上一篇: Docker基本操作
下一篇: Docker笔记
推荐阅读
-
linux下texmaker使用笔记
-
HTML+CSS学习笔记(1)
-
`LaTeX` Debug笔记之 - `File ' ' not found` (`\includegraphics`)
-
php笔记之:有规律大文件的读取与写入的分析_PHP教程
-
XML笔记(Performance Testing)
-
PHP循环语句笔记(foreach,list)
-
SqlServer 2005 T-SQL Query 学习笔记(4)
-
OpenGL学习笔记22-Stencil testing
-
CI框架源码阅读笔记8 控制器Controller.php,cicontroller.php_PHP教程
-
云笔记的数据同步是怎么实现的?