Docker有两个版本:Community Edition(CE)和Enterprise Edition(EE)。
Docker CE有两个更新通道:
- Stable每季度为您提供可靠的更新
- Edge每个月都会为您提供新功能
ubuntu安装docker
- 检查ubuntu的kernel的版本
不管你是Ubuntu的哪个版本,Docker需要64的操作系统。此外你的kernel内核至少要在3.10版本之上。kernel3.10版本之前的系统缺少一些特性来运行docker容器。这些旧版本有些已知的bugs会导致数据丢失并且在一定条件下会频繁的故障。检查你当前的kernel版本,打开终端,输入
uname -r
- 卸载旧版本docker
老版本的Docker被称为docker或docker-engine
新版名为docekr-ce
sudo apt-get remove docker docker-engine docker.io
# docker的images,containers,volumes,networks会保留在/var/lib/docker中
- repositories安装
- 设置apt的源设置docker存储库
# 更新apt源,还需要设置docker官方的apt源,因为docker默认apt中的版本较低
sudo apt-get update
# 安装软件包以允许apt通过https使用存储库 更新包信息 确保apt能使用https的方式并安装CA证书
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# 添加Dokcer的官方GPG密钥
//sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加稳定的仓库源(按架构选择)
* amd64
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
* armhf:
sudo add-apt-repository "deb [atch=armhf] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
* s390x:
sudo add-apt-repository "deb [atch=s390x] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
//echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list
# 添加软件源后更新apt包索引
sudo apt-get update
- 安装docker
# 安装最新的docker
sudo apt install docker-ce
# 安装指定版本的docker
apt-cache madison docker-ce 列出可用的docker版本
sudo apt-get install docker-ce=<VERSION>
Docker守护进程自动启动。
- 启动docker
# 开启守护进程
sudo service docker start
# 查看docker守护进程的状态
sudo systemctl start docker
# 升级docker
sudo apt upgrade docker-ce
- 检查docker是否已经正确安装
sudo docker run hello-world
- 卸载docker
# 删除docker的包
sudo apt purge docker-cs
# 删除docker相关的依赖包
sudo apt autoremove --purge docker-cs
以上命令不会删除映像、容器、数据卷、用户配置文件等,如果需要删除,用:
rm -rf /var/lib/docker
- 可选配置
# 添加到用户组 添加后可以直接使用docker开头 不用加sudo
## 创建docker组
sudo groupadd docker
## 将用户添加到docker组中
sudo usermod -aG docker $USER 重启系统生效
# 自启动docker
大多数当前的Linux发行版(RHEL,CentOS,Fedora,Ubuntu 16.04和更高版本)用于systemd管理系统启动时启动的服务。Ubuntu 14.10及以下版本使用upstart。
# systemd
## 设置系统启动时自动开启docker
sudo systemctl enable docker
## 禁用自启动
sudo systemctl disable docker
# upstart
docker会自动配置自启动
## 禁用
echo manual | sudo tee /etc/init/docker.override
# 添加仓库镜像地址(阿里云)
vi /etc/systemd/system/multi-user.target.wants/docker.service
ExecStart=/usr/bin/dockerd 这行后添加 --registry-mirror=https://jxus37ad.mirror.aliyuncs.com (可以去阿里云免费申请一个自己专属的加速器地址)
重新加载加载配置项并且重新启动
sudo systemctl daemon-reload
sudo systemctl restart docker
- 常用docker命令
#查看docker的版本
docker --version
# docker更多信息
docker info 或者 docker version
# 列出docker所有支持的命令
docker 或 docker container --help
# 列出docker的容器
docker container ls
docker container ls --all
docker container ls -a -q
# 查看主机所有已经下载的映像
docker images 或者 docker image ls
# 查看正在运行的容器列表
docker ps
# 查看docker子命令的相关帮助文档
docker docker-subcommand --help
# 搜索docker hub上的映像
docker search ubuntu
# 下载镜像
docker pull ubuntu
# 启动包含该映像的一个容器
docker run ubuntu
- 错误
#
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json: dial unix /var/run/docker.sock: connect: permission denied
原因: 没有将docker添加到用户组。
docker守护程序绑定到Unix套接字而不是TCP端口。默认情况下,Unix套接字由用户root拥有,其他用户只能使用sudo访问它。 docker守护程序始终以root用户身份运行。 如果您不想在使用docker命令时使用sudo,请创建名为docker的Unix组,并将用户添加到该组。当docker守护进程启动时,它会使Docker组的Unix套接字的所有权读/写。
- 参考
docker官网
浙公网安备 33010602011771号