基本操作
#开机重启后需要重启服务器
sudo systemctl daemon-reload
sudo systemctl restart docker
#获取镜像
$ docker pull bfang123/cuda10.1-ubuntu18.04-usgg:latest
#运行
$ docker run -it bfang123/cuda10.1-ubuntu18.04-usgg:latest /bin/bash
#开启
$ docker start 34bf7f302716
#运行在后台
$ docker run -itd --name ubuntu-test bfang123/cuda10.1-ubuntu18.04-usgg:latest /bin/bash
#进入
$ docker exec -it 34bf7f302716 /bin/bash
# 查看所有容器
$ docker ps -a
# 删除其他容器
$ docker rm -f 7ef5d9f79cf4
#列出镜像列表
$ docker images
#其余镜像删除
$ docker rmi ubuntu
#测试
$ docker run bfang123/cuda10.1-ubuntu18.04-usgg:latest /bin/echo "Hello world"
#容器命名
docker rename 34bf7f302716 fisher
# 查看挂载目录
docker inspect fisher | grep Mounts -A 20
容器互联
#创建一个新的网络test-net
$ docker network create -d bridge test-net
#运行一个容器并连接到新建的 test-net 网络
$ docker run -itd --name test1 --network test-net ubuntu /bin/bash
#打开新的终端,再运行一个容器并加入到 test-net 网络
$ docker run -itd --name test2 --network test-net ubuntu /bin/bash
//容器连接测试
#在容器test1/test2内执行以下命令安装 ping
$ sudo apt-get update
$ sudo apt install iputils-ping
#在容器test1输入指令
$ docker exec -it test1 /bin/bash
ping test2
#在容器test2输入指令
$ docker exec -it test2 /bin/bash
ping test1
网络端口映射
#创建了一个 python 应用的容器
$ docker run -d -P training/webapp python app.py
#容器内部端口5000绑定到指定的主机端口6000
$ docker run -d -p 6000:5000 training/webapp python app.py
#指定容器绑定的网络地址,比如绑定 127.0.0.1。
¥ docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
#查看容器端口的绑定情况
$ docker port adoring_stonebraker 5000
配置 DNS
#在宿主机的 /etc/docker/daemon.json 文件中增加以下内容来设置全部容器的 DNS
{
"dns" : [
"202.117.0.20",
"202.117.0.21"
]
}
#重启 docker 才能生效,查看容器的 DNS 是否生效
$ docker run -it --rm fisher cat etc/resolv.conf
nameserver 192.168.32.2
仓库管理
$ docker login
$ docker logout
#拉取镜像
$ docker search ubuntu
#使用 docker pull 将官方 ubuntu 镜像下载到本地
$ docker pull ubuntu
# 推送镜像(以ubuntu为例)
$ docker tag ubuntu fisher1016/ubuntu:
$ docker push fisher1016/ubuntu
# 查看仓库
$ docker search fisher1016/ubuntu
jupyter notebook --ip=0.0.0.0 --port=8080 --allow-root