一、安装docker
1.查看是否已安装docker以及已安装docker版本
service docker start(测试是否能启动docker)
docker -v (查看docker版本)
lyh@yy:~$ docker -v
Docker version 20.10.7, build 20.10.7-0ubuntu5~18.04.3
2.如果现有版本太旧或者不满足当前版本需求可先卸载旧版本
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt-get remove docker docker-engine docker.io containerd runc
官方卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
删除残留的docker文件
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
3.更新apt工具包
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
4.安装使用 HTTPS 传输的协议包和 CA 证书
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
5. 添加 Docker 官方的 GPG 秘钥
Docker 官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Docker 中科大源
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
6. 向 source.list 中添加 Docker 软件源
软件版本有三种:stable、edge、test,我们选择stable稳定版
添加官方源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
添加国内镜像源(中科大源)# 添加国内镜像源(中科大源)
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
7. 安装 Docker CE
sudo apt-get update
sudo apt-get --no-install-recommends install -y docker-ce docker-ce-cli containerd.io
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
或者下面两条命令
sudo apt-get update
sudo apt-get install docker-ce
8. 查看是否安装成功
docker -v
启动docker服务,若能启动则安装成功
service docker start
运行测试案例,安装成功会输出 Hello from Docker!
sudo docker run hello-world
9. 查看docker服务状态
sudo systemctl status docker
10. 设置开机启动
sudo systemctl start docker
sudo systemctl enable docker
11. 镜像加速(更改国内镜像源)
在 /etc/docker/daemon.json 中写入以下内容并重启服务,如文件不存在则新建文件
{
"registry-mirrors": [
"http://f1361db2.m.daocloud.io",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://https://mirror.ccs.tencentyun.com",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
]
}
其他
通过apt简单安装docker
sudo apt install docker.io
如果Docker CE需要安装特定版本,使用下面命令会列出可用版本
apt-cache madison docker-ce
然后安装特需版本的Docker CE (version是你的版本)
sudo apt-get install docker-ce=version
此外还有一种离线安装方式
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh
或者curl -fsSL https://get.docker.com/ | sh
如果下载安装速度慢,可以使用阿里云镜像安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意(主要是为非root用户准备)**
创建docker组
sudo groupadd docker
将用户添加到docker组($USER就是获取当前用户名)
sudo usermod -aG docker $USER
退出当前登录用户并重新登录;或者重启系统确保组成员信息生效(linux环境可以使用如下命令使组信息修改生效)
newgrp docker 或者reboot
确认可以不使用sudo运行docker
docker run hello-world
补充
docker-ce与docker.io的区别:
docker-ce 是 docker 官方维护的,docker-ce 用go的方式管理依赖,会自己管理所有的依赖。
docker.io 是 Debian 团队维护的,docker.io 采用 apt 的方式管理依赖
二、安装配置docker-compose
方式一、《从github上下载docker-compose二进制文件安装1.29.2》
官方git地址下载
sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
daocloud下载安装(速度快些)
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
修改权限
chmod +x /usr/local/bin/docker-compose
查看docker-compose是否安装成功
docker-compose --version
方式二、pip安装 docker-compose
sudo apt-get --no-install-recommends install -y python3-pip python3-setuptools
sudo python3 -m pip install setuptools docker-compose
常见基本命令
docker pull ${CONTAINER NAME} #拉取镜像
docker images #查看本地所有镜像
docker ps #查看所有正在运行的容器,加-q返回id
docker ps -a #查看所有容器,加-q返回id
docker rmi ${IMAGE NAME/ID} #删除镜像
docker rm ${CONTAINER NAME/ID} #删除容器
docker save ${IMAGE NAME} > ${FILE NAME}.tar #将镜像保存成文件
docker load < ${FILE NAME}.tar #从文件加载镜像
docker start ${CONTAINER NAME/ID} #运行一个以前运行过的容器
docker stop ${CONTAINER NAME/ID} #停止一个正在运行的容器
docker logs ${CONTAINER NAME/ID} #显示运行容器的日志
docker run... #运行一个容器
--name ${container name} #设置容器名称
-p ${host port}:${container port} #映射主机和容器内的端口
-e ${env name}=${env value} #添加环境变量
-d #后台运行
-v ${host folder path}:${container folder path} #将主机目录挂在到容器内
docker ps -f "status=exited" #显示所有退出的容器
docker ps -a -q #显示所有容器id
docker ps -f "status=exited" -q #显示所有退出容器的id
docker restart $(docker ps -q) #重启所有正在运行的容器
docker stop $(docker ps -a -q) #停止所有容器
docker rm $(docker ps -a -q) #删除所有容器
docker rm $(docker ps -f "status=exited" -q) #删除所有退出的容器
docker rm $(docker stop $(docker ps -a -q)) #停止并删除所有容器
docker start $(docker ps -a -q) #启动所有容器
docker rmi $(docker images -a -q) #删除所有镜像
docker exec -it ${CONTAINER NAME/ID} /bin/bash #进入容器内
docker exec -it ${CONTAINER NAME/ID} ping ${CONTAINER NAME/ID} #一个容器ping另外一个容器
docker top ${CONTAINER NAME/ID} #显示一个容器的top信息
docker stats #显示容器统计信息(正在运行)
docker stats -a #显示所有容器的统计信息(包括没有运行的)
docker stats -a --no-stream #显示所有容器的统计信息(包括没有运行的) ,只显示一次
docker stats --no-stream | sort -k8 -h #统计容器信息并以使用流量作为倒序
docker system
docker system df #显示硬盘占用
docker system events #显示容器的实时事件
docker system info #显示系统信息
docker system prune #清理文件