deepin linux 安装最新版 docker
可以参考官放 wiki 文档进行安装,地址如下:
但官网打开速度比较慢,另外关于最后一项禁止开启自启官方说的方式是无效的,笔者亲试至少在(deepin 15.10.1 基于 unstable 升级上来的)是无效的.所以将详情步骤记录如下:
注:执行apt命令之前,最好先执行一次更新仓库操作sudo apt update
1.如果以前安装过老版本,要确保先卸载以前版本.
sudo apt remove docker.io docker-engine
2.安装密钥管理与下载相关的工具
// 密钥管理(add-apt-repository ca-certificates 等)与下载(curl 等)相关的工具
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common
3.下载并安装密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
执行成功后返回 OK 即可.如果不成功的话,可能是网络问题,我这儿是处于翻墙状态,所以是能成功的.不能成功的话,可以按照官方 wiki 上说的使用国内镜像源curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
4.查看密钥是否安装成功
sudo apt-get fingerprint 0EBFCD88
如果成功会提示
pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <[email protected]>
sub 4096R/F273FCD8 2017-02-22
5.在 source.list 中添加 docker-ce 软件源
在此需要注意当前系统版本,执行 cat /etc/debian_version查看当前系统是基于debian的哪个版本.debian版本号和系统代号如下:
系统代号 | 版本号 |
---|---|
squeeze | 6.x |
wheezy | 7.x |
jessie | 8.x |
stretch | 9.x |
deepin 15.10.x 是基于 debian9.0 的,所以加入源如下:
sudo vim /etc/apt/sources.list
deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable
6.更新仓库
sudo apt update
7.安装 docker-ce
sudo apt install docker-ce
注:这一步网络不好可能会导致失败,多试几次总会成功的.
8.启动 docker
sudo systemctl start docker
或者service docker start
9.查看安装的版本信息
docker version
10.验证 docker 是否被正确安装并且能够正常使用
sudo docker run hello-world
如果能够正常下载,并能够正常执行,则说明 docker 正常安装
11.让普通用户也能运行 docker
默认情况下,普通用户运行 docker 会有权限问题,每次运行都得加 sudo,很麻烦。把你的账号加到 docker 用户组后就不用加 sudo 了:
sudo usermod -aG docker test
// test 是用户名,替换为自己的,执行后注销登录
12.docker service 默认是开机自启的,强迫症取消开机自启的
这一点,官方说的安装chkconfig来管理
安装 chkconfig
sudo apt install chkconfig
移除自启
sudo chkconfig --del docker
但是试了,重启无效无效.需要通过systemctl命令来禁止
sudo systemctl disable docker
docker 使用初识
docker 入门命令
docker 安装后,默认是没有任何镜像的,如果安装后执行了 docker run hello-world 的话,是有一个 hello-world 的镜像的.
docker images
// 查看本地的镜像
可以通过 pull 命令获取相关镜像
docker search nginx
// 在 docker.io 上搜索 nginx 相关的镜像
docker pull nginx:latest
// latest 代表取最新版本,要获取其他版本 docker pull nginx:xxxx
docker run -itd --name nginx1.0 nginx
// -d: 后台启动容器;-i: 以交互模式运行容器,通常与 -t 同时使用;-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; –name:容器的别名,默认为随机的,这儿为 nginx1.0
第一次使用run运行指定别名后,以后可通过docker start+ 别名的方式启动
docker ps
// 查看正在运行的容器
docker ps -a
// 查看所有容器
docker ps -l
// 查看最近一次运行的容器
docker exec -it nginx1.0 bash
// 进入 nginx1.0 容器的命令行
docker start nginx1.0
// 启动 nginx1.0 容器
docker stop nginx1.0
// 停止 nginx1.0 容器
docker rm nginx1.0
// 删除 nginx1.0 容器
docker常用清除相关缓存命令
docker image prune
// 清除悬空镜像(没有标签的镜像,通常是构建过程中的中间层)
docker image prune -a
// 清除所有未使用的镜像
docker network prune
// 清除未使用的网络
docker volume prune
// 清除未使用的卷
docker container prune
// 清除所有停止的容器
docker builder prune
// 清除所有未使用的构建缓存
docker 网络
linux 使用 namespace 来进行资源的隔离 ,docker 的隔离性
1.docker 的网路类型分为:
Bridge 模式:桥接(默认的模式)
host 模式:容器将不会获得独立的 network namespace,将和主机公用一个;即在 docker 中使用网络和主机上一样的;
None:不与外界任何东西进行通讯
2.采用 Bridge 的时候需要和主机通讯,就需要使用端口映射
docker run -d –name nginx1.0 -p 8080:80 nginx # 主机的 8080 端口映射到容器中的 80 端口
多个端口映射可以跟多个-p,比如:-p 8080:80 -p 6379:6379
docker 镜像备份和导入镜像
docker save -o /home/xxx/images/nginx.tar nginx1.0
// 将 nginx1.0 镜像备份到/home/xxx/images/目录下
docker load --input /home/xxx/images/nginx.tar
// 导入镜像
docker挂载物理机本地目录
docker可以支持把一个宿主机上的目录挂载到镜像里。
docker run -itd -v /home/bz/Downloads:/home/Downloads nginx1.0
// 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径
默认挂载的路径权限为读写。如果指定为只读可以用:ro
docker run -itd -v /home/bz/Downloads:/home/Downloads:ro nginx1.0