局域网登陆仓库
$ sudo docker run --runtime nvidia -it -d -v ~/yanel/:/work -p 9338:9338 --cpus 40 -m 300g --shm-size 80G --memory-swappiness 90 --name speech_recognition 2c7fa282ced3
$ sudo nvidia-docker run --ipc=host -it -p 9008:9008 -d -v ~/yanel/:/work --cpus 40 -p 9002:9002 -m 300g --shm-size 80G --memory-swappiness 90 --name tacotron tacotron:v1.0
$ docker run -it -d -v ~/Desktop/:/work --cpus 10 -p 9999:9999 -m 10g --shm-size 10G --memory-swappiness 90 --name speech_recognition 2c7fa282ced3
-m --memory:容器能使用的最大内存大小,最小值为 4m b、k、m、g,分别对应 bytes、KB、MB、和 GB)
--memory-swap:容器能够使用的 swap 大小
--memory-swappiness:默认情况下,主机可以把容器使用的匿名页(anonymous page)swap 出来,你可以设置一个 0-100 之间的值,代表允许 swap 出来的比例
--memory-reservation:设置一个内存使用的 soft limit,如果 docker 发现主机内存不足,会执行 OOM 操作。这个值必须小于 --memory 设置的值
- docker run -it -d -v ~/Desktop/:/work --cpus 12 -p 8022:22 -m 15g --shm-size 10G --memory-swappiness 90 --name npss
docker run -itd -v /root/yanel/:/work --rm --gpus 0 -p 9189:9189 --name merlingpu 2a305d7b19e2
$ mkdir ~/.pip
$ vim ~/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/
trusted-host =pypi.douban.com
$ sudo docker inspect `container_name` | grep IPAddress #宿主机运行
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
$ watch -n 1 nvidia-smi
$ locale -a
$ apt-get -y install language-pack-zh-hans
$ export LANG=zh_CN.UTF-8
$ locale -a
sudo docker exec -it merlingpu env LANG=C.UTF-8 /bin/bash
NLdocker仓库1: docker login 10.1.8.16:5000 -u admin -p newland NLdocker仓库2 :docker login 10.1.8.15:5000 -u admin -p Harbor12345 NLdocker仓库3:docker login 10.1.8.25:5000 -u nai -p Nai12345(目前在用) NLdocker仓库3:docker login 10.1.8.25:5000 -u nai2 -p Nai212345(目前在用)
$ sudo docker create -it images_name:tag # 创建停止的容器
$ sudo docker start images_name
$ sudo docker run -it -d -v dir_host:dir -p port:potr --name container_name images_name:tag_name /bin/bash
$ sudo docker container stop container_name
$ sudo docker container prune # clear container_name stopped
$ sudo docker ps -qa # show all containers id
$ sudo docker restart container_id
$ sudo docker attach container_id
$ sudo docker exec -it container_id /bin/bash
$ sudo docker rm container_id
$ sudo docker export -o tar_name container-id
$ sudo docker import -o tar-name - name:version
$ sudo docker top container_id
$ sudo docker cp local_data container_name:/root/
$ sudo docker container diff container_name
$ sudo docker container port container_name
$ sudo apt-get update
$ sudo apt-get install openssh-server
mkdir -p /var/run/ssh
/usr/sbin/sshd -D &
1.dockerfile:把需要什么系统,需要装什么软件,需要怎么配置环境等等全部都写进Dockerfile里面,相当于是一个基于docker的全自动生成镜像的一个脚本.
$ docker build -t image:tag #依据dockerfile建立docker
2.镜像:docker的静态,Dockerfile生成的是镜像,docker 镜像是docker移植的关键,容器是以save 、load docker镜像为主。
3.容器:容器是docker的动态,由镜像run出来的(sudo docker run),容器是docker的精华,你可以理解为容器技术就是应用了集装箱的思维,把所需要的所有东西都放进一个集装箱(container)里面,哪里需要服务,我直接把整个集装箱运过去,然后你进去集装箱享受服务就好了。
docker save imageID > filename.tar #保存本地镜像
docker load < filename.tar #加载本地镜像
docker export containID > filename #保存容器到本地
docker import - filename #加载本地容器
#从当前目录下的Dockerfile(命名dockerfile好像也能识别,其他就不行了)建立镜像
sudo docker build -t reponame:tag .
#别忘了最后那个.!
sudo docker images #查看镜像
sudo docker ps #查看当前运行的容器
sudo docker ps -a #查看全部容器(包括运行中的和停止的)
# 内存和CPU数目
sudo docker run -it -d -v /Users/yanerrol/Desktop:/work -m 102400M --cpus 4 --privileged=true --name merlin merlin:v1.0
sudo docker run -it --name blabla -p <物理机>:<容器>(e.g. 127.0.0.1:3306:3306) -v /your/local/path/:/map/path/in/docker/ -v /etc/localtime:/etc/localtime --net =host -d reponame:tag
# 启动容器
#[-it 是启动交互和伪终端]
#[-p <IP>:<宿主机端口>:<容器端口> 将宿主机(物理机)映射或者可以理解为绑定,<IP>可以指定,也可以不指定,不指定默认是0.0.0.0,建议还是指定]
#[-v 是挂载本机目录到到docker目录,最好每次都把-v /etc/localtime:/etc/localtime也带上,确保docker 容器内时间和服务器时间一致]
#[-d 是daemonize的意思,就是使容器成为守护进程,后台运作]
#[--net是设置docker的网络模式,默认不设置的话就是bridge模式,现在设置为和物理机网络绑定的host模式,更多可以看 Docker的4种网络模式(http://www.cnblogs.com/gispathfinder/p/5871043.html)
#[--link 是容器链接]
#复习几个特别的IP:
#①127.0.0.1是本地回环地址,代指本机; [对于绑定在127.0.0.1的端口而言,外部无法访问,不对外打开,仅仅对内打开]
#②0.0.0.0 代表所有不清楚的IP,安全性差,也是指本机?;[对于绑定在0.0.0.0的端口而言,外部可以访问]
#③255.255.255.255 用人类的话说:“嘿,这屋子的所有人听着了!”
#④localhost 这个是域名,一般都是127.0.0.1,这种对应关系写在你的/etc/hosts里面
sudo docker start/stop/restart/rm blabla #启动/停止/重启/删除 容器
sudo docker cp blabla:/app/file.txt . # 把docker里面/app目录下的file.txt文件复制出来到现在所在的目录
sudo docker exec -it blabla /bin/bash #在启动的容器blabla中运行/bin/bash
sudo docker exec -it blabla /the/path/of/your/command
sudo docker commit blabla repo:tag #提交保存容器到一个新的镜像repo:tag
sudo docker login --username=vvvhkfhfkhdkfh registry.cn-shenzhen.aliyuncs.com #默认登陆阿里巴巴 https://cr.console.aliyun.com/repository/cn-shenzhen/errolyan/tts_tacotron/detail
docker push images_name:tag #push 本地镜像到阿里巴巴仓库
#从阿里巴巴仓库拉取镜像
sudo docker pull registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]
#将镜像推送到阿里巴巴仓库
sudo docker login --username=vvvhkfhfkhdkfh registry.cn-shenzhen.aliyuncs.com
sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]
sudo docker push registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]
sudo docker rmi repo:tag #删除镜像
#容器的导出和导入
sudo docker export
sudo docker import
#镜像的导出和导入
[文件]
sudo docker save repo:tag > backup.tar
sudo docker load < backup.tar
[dockerhub]
sudo docker login
sudo docker push repo:tag
sudo docker pull repo:tag
#常用组合命令
#停止所有docker容器
sudo docker kill $(sudo docker ps -q)
#删除所有docker容器
sudo docker rm $(sudo docker ps -aq)
sudo docker exec -it 容器ID /bin/bash #另起一个虚拟命令窗口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IWCuOu5P-1586823655598)(./ec2a2c8be2472a24fa4ae906884494cc.png “ec2a2c8be2472a24fa4ae906884494cc.png”)] ec2a2c8be2472a24fa4ae906884494cc.png docker 工作流程
deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
sed -ri "s/session required pam_loginuid.so/#session required pam_loginuid.so/g" /etc/pam.d/sshd
#设置字体库
RUN apt-get clean && apt-get update
RUN apt-get install -y locales
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LANG zh_CN.utf8
#!/bin/bash
/usr/sbin/sshd -D
FROM ubuntu:18.04
MAINTAINER docker_user(2681506@gmail.com)
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse" > /etc/apt/sources.list
RUN echo "deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse" > /etc/apt/sources.list
RUN apt-get update
# 安装ssh服务
RUN apt install -y openssh-server
RUN mkdir -p /var/run/sshd
RUN mkdir root/.ssh
# 取消pam限制
RUN sed -ri "s/session required pam_loginuid.so/#session required pam_loginuid.so/g" /etc/pam.d/sshd
# 复制配置文件到相应的位置
ADD authorized_keys /root/.ssh/authorized_keys
ADD run.sh /run.sh
RUN chmod 755 /run.sh
# 开放端口
EXPOSE 22
# 设置自启动
CMD ["/run.sh"]
Docker官方英文资源
docker官网:http://www.docker.com
Docker windows入门:https://docs.docker.com/windows/
Docker Linux 入门:https://docs.docker.com/linux/
Docker mac 入门:https://docs.docker.com/mac/
Docker 用户指引:https://docs.docker.com/engine/userguide/
Docker 官方博客:http://blog.docker.com/
Docker Hub: https://hub.docker.com/
Docker开源: https://www.docker.com/open-source
Docker中文资源
Docker中文网站:https://www.docker-cn.com/
Docker安装手册:https://docs.docker-cn.com/engine/installation/
Docker 国内镜像
网易加速器:http://hub-mirror.c.163.com
官方中国加速器:https://registry.docker-cn.com
ustc的镜像:https://docker.mirrors.ustc.edu.cn
daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)