docker和anaconda使用基础
docker和虚拟机的区别Docker是在操作系统层面进行虚拟化,而传统VM则直接在硬件层面虚拟化LXC(linux container)docker基于LXC(linux内核虚拟化技术),和vm、Hypervisor相比效率提高很多。实现了一个容器只包含一个进程的微服务架构Hypervisor:抽象虚拟化硬件平台VMWare, XEN抽象虚拟化操作系统LXC进程级别虚拟化docker engin
docker和虚拟机的区别
Docker是在操作系统层面进行虚拟化,而传统VM则直接在硬件层面虚拟化
LXC(linux container)
docker基于LXC(linux内核虚拟化技术),和vm、Hypervisor相比效率提高很多。实现了一个容器只包含一个进程的微服务架构
Hypervisor:抽象虚拟化硬件平台
VMWare, XEN抽象虚拟化操作系统
LXC进程级别虚拟化
docker engine和dokcer machine
Docker machine是docker的工具,用来在虚拟加上安装docker engine,并使用命令管理虚拟机 ,docker toolbox安装boot2docker到虚拟机,docker-machine通过网络访问和部署
docker toolbox原理,virtualbox中安装Linux系统,再用docker和linux通信,所以docker安装的版本要和linux的版本对应
老版本docker,不要安装ubuntu:latest,否则docker使用的时候会有很多错误,比如apt-get update fail等
virtualbox中设置cpu数量到最高,提升docker性能
两种安装方式
- docker toolbox for windows (安装toolbox更简单,win7 还是只能用 Docker Toolbox,而 Win10 已经通过 Hyper-V 直接支持)
https://docs.docker.com/toolbox/toolbox_install_windows/
安装错误:https://blog.csdn.net/zhang_yasong/article/details/105239575(或者,快捷方式添加管理员权限即可)
virtualbox 升级版本,自带的版本有问题
桌面快捷方式,打开的终端是windows模拟的bash窗口,本地方式访问的docker和docker-machine程序
docker-machine通过boot2docker进入docker环境
docker-machine ls查看docker主机
docker pull ubuntu下载image
启动终端,打开docker-egine后,启动Kitematic (Alpha),登录如下
docker-machine ssh default 连接machine(只是一个连接部署工具,docker使用docker attach命令连接或者docker exec)
修改docker镜像源:https://blog.csdn.net/u012814856/article/details/80427561
Docker 官方中国区: https://registry.docker-cn.com
网易: http://hub-mirror.c.163.com
中科大: https://docker.mirrors.ustc.edu.cn
阿里云容器 服务 https://cr.console.aliyun.com/,创建镜像仓库后
输入提示的docker login,在镜像搜索中查找镜像地址,docker pull
- docker tools 提示需要VT-X/AMD-v enabled
“${DOCKER_MACHINE}” create -d virtualbox $PROXY_ENV “${VM}”
替换为
“${DOCKER_MACHINE}” create -d virtualbox --virtualbox-no-vtx-check $PROXY_ENV “${VM}”
- docker for windows,下面的操作基于docker for windows
容器和镜像
镜像相当于类文件,容器则是镜像的实例。
docker生成镜像文件(文件不包含操作系统内核,只有虚拟的文件系统),可以通过virtualbox打开镜像
vscode docker
image:可以通过dockerfile dock build image编译
container:附加镜像
registries:docker个人数据库
dockers和window交互
docker run --rm -it -v /d/:/mnt/d image_name,
docker setting中选择磁盘共享
-v参数,本地目录:docker目录
在dockertoolbox中先把windows目录挂接到docker-machine中(自动挂载点),在使用-v挂载
Docker 命令
docker run -it(交互模式,有控制台) --rm -v(磁盘映射) -m 3g(内存只能该小,改大需要在ui中配置,toolbox在virtualbox中设置)
docker attach 连接docker
docker update -m 30M --memory-swap 30M 897a6a09807a修改内存(linux中有效)
docker stats containid 查看内存
docker exec 执行命令
docker build dockerfile
docker images:查看镜像
docker ps:查看运行容器
docker tag imageid 位置:name
docker rename containername newname
docker commit containerid[container name] tag(相同tag可覆盖)
docker cp拷贝文件到本地
docker ip设置,使用桥接外网是通的,添加路由可以连接本机
route add -p 172.17.0.0 mask 255.255.0.0 192.168.99.100
https://blog.csdn.net/u014104286/article/details/82961203
docker图形化操作
docker search dockerui
docker pull dockerui名称
docker与docker相互访问
- ifconfig,查询ip后直接访问
- linker,docker运行参数–linker
- network,docker运行参数—network
参考:https://www.cnblogs.com/shenh/p/9714547.html
docker和主机互访
- docker run -p 33:22 映射主机33端口到docker22端口,使用ssh访问localhost:33访问即可
- docker run -P 映射所有端口
- docker port id 查看docker映射的端口信息
docker inspect containerid,配置中添加,然后重启
"PortBindings":{
"22/tcp":{
"HostIp":"",
"HostPort":"33"
}
}
使用dockerfile管理docker数据
dockerfile编译过的文件有缓存,下次编译会自动更新上次的数据,比docker commit好很多
docker image可以逆向生成dockerfile,docker history查看image执行的历史命令
FROM ubuntu:latest
ADD files/aspnetcore-runtime-5.0.17-linux-x64.tar.gz /home/dotnet
COPY dotnet /home/ //ADD拷贝压缩文件,COPY拷贝文件或者文件夹,src在build传入的路径中,其他路径可能找不到
COPY server/Home/build /home/Home/
COPY server/bin/Debug/net5.0/*.dll /home/
COPY server/bin/Debug/net5.0/*.json /home/
COPY server/bin/Debug/net5.0/fefdadp_server /home/
WORKDIR /home
RUN /home/dotnet/dotnet run /home/server/bin/Debug/net5.0/server (**每个run命令都是独立的文件结构,需要workdir指定共用目录,自动创建和cd目录**,否则access error访问错误)
#ENTRYPOINT 指定docker run参数,CMD命令docker run参数,会覆盖dockerifle中最后一个cmd命令有效
#ARG和ENV 配置环境
#VOLUME 挂载本地目录
EXPOSE 5000 5000 //端口映射
使用docker image prune清理untagged的docker,错误的docker可能导致后续编译错误,需要定时清理
vscode docker插件可以显示untagged镜像,untagged镜像需要手动定期清理
docker build . 执行dockerfile(docker build -f 路径 -t tagname),使用imageid,docker run -it 调试错误的docker
docker run 会启动失败,要加tagname,否则无法调试
docker管理工具
docker-machine实现多个电脑安装docker,k8s更高效的管理
参考:从Docker Machine到K8S:容器管理为啥有这么多工具?
anaconda查询
conda create --name 创建环境 module(source activate 环境)
conda install --name 环境 module
conda env list 查看安装的环境
source activate <环境> 激活安装的环境
更多推荐
所有评论(0)