Centos7、 Docker基础用法
镜像官网(安装后默认):https://hub.docker.com/
docker 1ms 镜像加速网站:https://1ms.run/
如果有安装过需要先卸载
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engin安装相关组件
yum-y install gcc
yum -y install gcc-c++
yum install -y yum-utils设置docker stable仓库
#Docker官网:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#阿里云:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新yum索引(提升yum安装速度)
yum makecache fast安装docker ce
yum install docker-ce docker-ce-cli containerd.ioubuntu 安装
#更新软件源
sudo apt update
#安装证书
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
#从docker 获取软件源 由于网络原因需要多执行几次
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
#添加软件源 多执行几次
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF#更新源 需要等待 有报错需要重新执行
sudo apt update
#更新软件源后进行安装
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin启动dockers
systemctl start docker
systemctl status docker
#运行hello world
docker run hello-world
#设置docker开机启动
systemctl list-unit-files 查看开机启动列表
systemctl enable docker
#查看
systemctl list-unit-files | grep docker简单命令
docker run -d --restart=always
--restart=always # 表示容器退出时,docker会总是自动重启这个容器
--restart=on-failure:3 # 表示容器的退出状态码非0(非正常退出),自动重启容器,3是自动重启的次数。超过3此则不重启
--restart=no # 默认值,容器退出时,docker不自动重启容器
--restart=unless-stopped # 表示容器退出时总是重启,但是不考虑docker守护进程运行时就已经停止的容器卸载docke
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerddocker命令
启动类命令
#启动
systemctl start docker
#停止
systemctl stop docker
#重启
systemctl restart docker
#运行状体
systemctl status docker
#开机启动
systemctl enable docker
#概要信息
docker info
#帮助文档
docker –help
#具体命令文档
docker [具体命令] –help镜像命令(docker 前缀)
images #列出docker中的镜像
-a #本地所有的镜像
-q #只显示镜像id
search #查某个镜像
--limit #拉取镜像数
pull #镜像名 下载镜像
Pull #镜像名字[:TAG])
pull #镜像名字(下载最新的镜像)
system df #查看镜像/容器/数据卷所占的空间
rmi #某个镜像的名字id 删除镜像
-f #强制删除
#多个j删除 镜像名1:TAG 镜像名2:TAG …
#全部 $(docker images -qa)虚悬镜像:仓库名、标签都是<none>的镜像,俗称虚悬镜像dandling image
容器命令
#新建+启动容器 docker run [options] image [comman] [ARG…]
optons
--name=”容器名字” #为容器指定一个名称
-d: #后台运行容器并返回容器id,守护式容器(后台运行)
-i: #交互模式运行容器,通常与-t一起使用
-t; #为容器重新分配一个伪输入终端,通常与-i一起使用,即启动交互式容器(有伪终端,等待交互(等待命令))
-P: #随机端口映射,大写P
-p: #指定端口映射,小写p
#运行ubuntu 这类需要交互的镜像时需要使用-it
docker run -it ubuntu /bin/bash (/bin/bash 必须写)
#退出终端直接输入exit
#列出运行的容器 docker ps
-a 运行过的容器,历史运行和正在运行
-l 显示最近运行容器
-n 显示最近n个创建的容器
-q 静默模式,只显示容器编号
#退出容器
Exit run进去,exit退出,容器停止
Ctrl+p+q run进去,ctrl+p+q退出,容器不停止
#启动已经停止运行的容器
docker start 容器id或容器名
#重启容器
docker restart容器id或容器名
#停止容器
docker stop 容器id或容器名
#强制停止容器
docker kill 容器id或容器名
#删除已经停止的容器
docker rm 容器id或容器名
#强制删除容器
docker rm -f 容器id或容器名
#启动守护式容器
docker 运行容器时,有些容器需要在后台运行,但是运行伪终端时如果意外退出,docker会停止该容器,就会导致使用到#该容器的服务崩溃。所以需要有守护式容器,即后台运行容器
#后台运行
docker run -d 容器名
#查看容器日志
docker logs 容器id
#查看容器内运行的进程
docker top 容器id
#查看容器内部细节
docker Inspect 容器id
#进入正在运行的容器并以命令行交互
docker exec -it 容器id bashShell(这里的shell必须加上)
docker attach 容器id
Attach 进入交互式容器中会直接进入容器启动命令的终端,不会启动新的进程,用exit退出会导致容器的停止
Exec 实在容器中打开新的终端,并且可以启动新的进程,用exit退出不会导致容器的停止
实际应用中应使用exec 的方式重新进入
#从容器拷贝文件到主机
docker cp 容器id:容器内路径 目的主机路径
进入容器中(ubuntu)
创建文件 touch a.txt
复制docker cp 9a286b7cb4dc:/tmp/a.txt /tmp
#导入和导出容器(容器备份)
export 到处容器作为一个tar归档文件
docker export 容器id> 导出路径
docker export 9a286b7cb4dc > /usr/abcd.tar
import 从tar包中的内容创建一个新的文件系统再导入为镜像
Cat 导入的tar | docker import - 镜像用户/镜像名:镜像版本号
cat abcd.tar | docker import - chen/ubuntu:1.1
#commit命令 提交容器,让容器成为镜像
docker commit -m=”提交的描述信息” -a=”作者” 容器ID 要创建的目标镜像名:[标签名]docker 安装mysql
docker run --name mysqls -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 mysql Docker 轻量级可视化工具Portainer
docker pull portainer/portainer-ce:latest
#启动命令
docker run -d --name portainer -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /app/portainer_data:/data --restart always --privileged=true portainer/portainer-ce:latest配置镜像加速
在/etc/docker 目录下新建daemon.json文件

添加如下内容
{
"registry-mirrors" : [
"https://docker.1ms.run"
]
}
重启docker 服务
systemctl restart docker.service