• 已删除用户
陈永强
陈永强
发布于 2026-06-03 / 6 阅读
0

Centos7、 Docker基础用法

Centos7、 Docker基础用法

官网:https://www.docker.com/

镜像官网(安装后默认):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.io

ubuntu 安装

#更新软件源
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/containerd

docker命令

启动类命令

#启动 
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