ubuntu18.04安装docker-CE
1. docker 版本
- Docker Community Edition (CE) 社区版
- Docker Enterprise Edition (EE) 企业版
2. 准备工作:
通过版本库安装(repository)。
2.1 更新系统包索引
sudo apt-get update
2.2 添加HTTPS协议和CA证书
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
2.3 添加Docker GPG公共密钥
# 中科大源
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add
出现OK即可。
2.4 设置版本库类型
ubuntu18.04对应版本为bionic
可通过命令查看
uname -m && cat /etc/*release
docker 版本分为3种:
- stable
- edge
- test
添加软件源:
# 中科大源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#官方源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
3. 安装docker CE
3.1 更新系统包索引
sudo apt-get update
有的错误可以忽略。
3.2 安装最新版docker CE
sudo apt-get install docker-ce
4. 启动docker
sudo systemctl enable docker
sudo systemctl start docker
启动之后是没有反应的,因为没有进入docker。
5. 建立用户组,并将当前用户添加至用户组
5.1 建立docker用户组
sudo groupadd docker
5.2 将当前用户加入 docker 组
sudo usermod -aG docker $USER
5.3 重启终端或重启docker
sudo systemctl restart docker
6. 查看docker镜像
6.1 不用sudo查看镜像
docker images
出现下面的提示:
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.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
说明没有权限,修改docker权限: /var/run/docker.sock
sudo chmod a+rw /var/run/docker.sock
6.2 进入docker
docker run hello-world
表示docker CE安装成功!
7. 查看docker 版本
docker version
8. 卸载docker
sudo apt-get remove docker docker-engine docker-ce docker.io
9. 常用命令
查看帮助命令
docker --help
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 #清理文件