CentOS8安装使用docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是一个Client-Server结构的系统。Docker镜像Image就是只读的模版,镜像可以用来创建docker容器,一个镜像可以创建多个容器。应用程序或服务运行在容器里面,容器类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。Docker仓库存放镜像的地方。

1. docker下载和安装

# root 运行
## 卸载旧的版本
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

## 查看是否存在Podman,如有,删除
rpm -q podman
yum erase podman buildah

# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置镜像仓库
# 官方镜像仓库
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 makecache

# 安装
yum install docker-ce docker-ce-cli containerd.io

# 版本信息
docker version
docker info

# docker系统信息
docker system df

# 卸载
# yum remove docker
# rm -rf /var/lib/docker
# rm -rf /bar/lib/containerd

2.  docker服务操作

systemctl start docker # 启动
systemctl stop docker # 停止
systemctl restart docker # 重新启动
systemctl status docker # 服务状态
systemctl enable docker # 设置开机启动


3. docker镜像操作

# 帮助信息
docker --help
docker pull --help 

docker search hello-world  # 镜像仓库搜索
docker pull hello-world # 下载镜像
docker images 
docker images -a # 显示所有
docker images -q # 只显示image ID号

# 删除镜像
# docker rmi hello-world
# docker feb5d9fea6a5
# docker rmi -f $(docker images -qa) # 强制删除所有镜像


4. 容器创建

docker run 参数
--name
-i
-t
-P 随机端口
-p 指定端口映射

# 创建容器,
docker run -d redis:6.0.8

# 容器名有唯一,包括和已经停止的容器名不能重复
docker run -it --name=myubuntu ubuntu  /bin/bash # 交互伪终端 interactive tty 

# 没有前台进程,调用ubuntu容器,会自动退出
docker run -d --name=myubuntu ubuntu # -d 后台运行

5. 容器查看

# 查看正在运行的容器
docker ps # 查看正在运行的容器
docker ps -a # 查看所有的容器,包括已经停止的
docker ps -a -l
docker ps -a -n 3

docker logs 95e25474bc7e # 查看容器日志

docker top 95e25474bc7e # 查看容器内运行的进程

docker inspect 95e25474bc7e  # 查看容器内部细节

6. 容器退出,启动和重新进入

exit # 退出容器
ctl+p+q # 退出,容器不停止

docker start 95e25474bc7e # 启动已经停止的容器
docker restart 95e25474bc7e
docker stop 95e25474bc7e
docker kill 95e25474bc7e # 杀死一个或多个容器
 
docker rm 95e25474bc7e # 删除停止运行的容器, 容器不会出先在 $(docker ps -qa)中

docker exec --help

docker exec -it 95e25474bc7e /bin/bash  # exec:在容器中打开新的终端,启动新的进程,用exit退出,不会导致容器的停止

docker attach 95e25474bc7e # 直接进入容器命令的终端,不会启动新的进程,用exit退出,会导致容器的停止

## 注:工作中,docker -d 容器id或容器名 后台运行,使用docker exec -it 容器id或容器名,启动新的前台进程,操作完,exit退出

7. 容器导入导出

# 拷贝容器中的文件到主机
# docker cp 容器id:容器内路径  目的主机路径

# 在容器2067514cb1f4中建一个文件
touch tmp/a.txt
ctl+p+q
docker cp 2067514cb1f4:/tmp/a.txt /home/zheng/tmp

# 导出容器
# docker export 容器id > 文件名.tar
docker export 2067514cb1f4 > /home/zheng/tmp/u2.tar

# 导出容器
# cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
cat /home/zheng/tmp/u2.tar|docker import - zheng/ubuntu:latest
docker images
docker run -it zheng/ubuntu /bin/bash

8. 镜像创建

# 由容器创建新的镜像
# 镜像 -> 容器 —> 增加新功能 -> 新的镜像
# docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]
docker run -it --name=u3 ubuntu /bin/bash

apt-get update
apt-get install vim

ctl+p+q # 退出,容器不停止

# 容器外执行
docker commit -m="vim added" -a="zheng" 6e24333809ed zheng/myubuntu:1.0

 

9. docker容器数据卷

# 主机和容器之间共享数据,备份docker容器的数据
# 没有文件夹,自动建立
# docker run -it --privileged=true -v 宿主机目录:容器内目录 镜像名
docker run -it --privileged=true -v /docker/host_data:/data --name=myubuntu ubuntu

# 容器内目录只读
docker run -it --privileged=true -v /docker/host_data:/data:ro --name=myubuntu ubuntu

参考:

https://www.docker.com

https://hub.docker.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值