ubuntu搭建docker 最详细文档

一、安装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
安装linux-image-extra- *内核包,这样可以使用aufs存储驱动。该驱动程序由较新版本的Docker使用
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        #清理文件
posted @ 2022-12-22 22:46  想勤奋的咸鱼  阅读(69)  评论(0)    收藏  举报