docker
docker容器简介
虚拟化容器
docker大致由三部分组成 仓库 镜像 容器
docker安装
卸载旧版本
# ubuntu
sudo apt-get remove docker docker-engine docker.io containerd runc
# centos
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
自动化脚本安装(test环境,root用户)
方式一:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
方式二:
curl -fsSL https://get.docker.com -o get-docker.sh \ sudo sh get-docker.sh
sudo sh get-docker.sh
卸载
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
仓库安装(推荐)
ubuntu
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# x86_64/amd64
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
centos
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo docker run hello-world
手动安装
添加用户:
sudo usermod -aG docker your-user
1.选择https://download.docker.com/linux/需要的版本
centos/x86_74/stable/Packages/.rpmdists/pool/stable/.deb
ubuntu
sudo dpkg -i /path/to/package.deb
sudo docker run hello-world
centos安装Docker Engine
sudo yum install /path/to/package.rpm
# 安装docker完成,并创建了docker组
sudo systemctl start docker
sudo docker run hello-world
docker相关命令
仓库
docker search 你要找的镜像
docker pull 下载镜像到本地
镜像
docker images
# 展示你本地的镜像信息
docker rmi
# remove 镜像
容器
运行容器
docker run 参数 --name 名字 路径 #运行某容器
| 基本参数 | 解析 |
|---|---|
| -i | 交互模式 |
| -t | 终端 |
| -d | 后台运行 |
| -P | 将容器内部使用的网络端口映射到我们使用的主机上 |
| -p | 将端口映射到本地制定端口 |
| v | 主机路径:容器内路径 |
| –name | 容器名 |
docker run -it image:[version] /bin/bash
docker run -d image:[version] /bin/bash
docker logs containerID
# 容器标准输出
Ctrl + p + q 退出容器而不终止
查看容器
docker ps -a #查看所有容器状态等信息
docker port #端口相关
docker top
docker inspect 底层信息,Docker容器配置和状态信息
重启容器相关
docker start 容器ID或者容器名字
# 启动已停止容器
docker restart ID/Name
# 重启停止的容器
docker stop ID/Name
#停止
docker attach ID/Name
#进入后台运行的容器但是退出会使容器停止
docker exec -it ID/Name /bin/bash
# 这个命令进入后台容器,退出容器终端时,不会导致容器的停止
删除容器
docker rm -rf ID/Name
#删除停止的容器
docker container prune
#清理掉所有终止的容器
导入导出容器快照
docker export 容器ID > 文件名.tar
#导出
docker import
#本地导入
docker import 地址 镜像
#通过URL或目录导入
打包镜像-dockerfile
相关指令
| 命令 | 解释 |
|---|---|
| FROM | 构建基于那个镜像 |
| ENV | 设置环境变量 |
| ADD | copy文件或目录到容器,如果是URL或压缩包会自动下载解压 |
| COPY | 与上类似,但不具备后述功能 |
| MAINTAINER | img维护者邮箱及姓名 |
| RUN | 构建镜像执行的命令,每run一次构建一层 |
| CMD | 容器启动命令,如多个以最后一个为准,也可为netrypoint提供参数 |
| VOLUME | 指定容器挂载点到宿主机自动生成目录或其他容器 |
| USER | 为run,cmd,entrypoint执行指定用户 |
| WORKDIR | 为run,cmd,entrypoint,copy,add 设置工作目录,即切换目录 |
| HEALTHCHECH | 健康检查 |
| ARG | 构建时指定参数 |
| EXPOSE | 声明服务端口,仅声明 |
| ENTRYPOINT | 运行容器时执行shell命令 |