Docker容器技术基础

本文详细介绍了如何在两台配置的云主机上禁用SELinux、卸载防火墙,通过跳板机上传Docker软件包,并进行一系列容器管理和镜像操作,如docker pull、push、save、load等,适合运维人员学习和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker安装

安装前准备:

1、禁用 selinux [SELINUX=disabled]
2、卸载防火墙 [yum -y remove firewalld-*]
3、将 docker 软件包上传到跳板机
4、准备 2 台 2cpu,2G内存的云主机

主机名IP地址最低配置
docker-0001192.168.1.312CPU,2G内存
docker-0002192.168.1.322CPU,2G内存

跳板机yum源添加docker软件

[root@ecs-proxy ~]# cp -a docker /var/ftp/localrepo/ 
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]# createrepo --update .

在 node 节点验证软件包

[root@docker-0001 ~]# yum makecache
[root@docker-0001 ~]# yum list docker-ce*

以下操作所有 node 节点都需要执行

开启路由转发

[root@docker-0001 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@docker-0001 ~]# sysctl -p
[root@docker-0001 ~]# yum install -y docker-ce
[root@docker-0001 ~]# systemctl enable --now docker
[root@docker-0001 ~]# ifconfig # 验证,能看见 docker0
[root@docker-0001 ~]# docker version # 验证,没有报错

镜像管理&容器管理

docker镜像管理命令

镜像管理命令说明
docker images查看本机镜像
docker search 镜像名称从官方仓库查找镜像
docker pull 镜像名称:标签下载镜像
docker push 镜像名称:标签上传镜像
docker save 镜像名称:标签 -o 备份镜像名称.tar备份镜像为tar包
docker load -i 备份镜像名称导入备份的镜像文件
docker rmi 镜像名称:标签删除镜像(必须先删除该镜像启动的所有容器)
docker history 镜像名称:标签查看镜像的制作历史
docker inspect 镜像名称:标签查看镜像的详细信息
docker tag 镜像名称:标签 新的镜像名称:新的标签创建新的镜像名称和标签

以下操作须在一台可以访问互联网的机器上执行:

#查找busybox镜像
[root@docker-0001 ~]# docker search busybox

#下载镜像
[root@docker-0001 ~]# docker pull busybox:latest

#查看本机镜像
[root@docker-0001 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
busybox             latest              69593048aa3a        3 weeks ago         1.24MB

#上传镜像
[root@docker-0001 ~]# docker push busyboxnew:latest

#备份镜像为tar包
[root@docker-0001 ~]# docker save busybox:latest -o busybox.tar

#导入备份的镜像文件
[root@docker-0001 ~]# docker load -i busybox.tar

#删除镜像(必须先删除该镜像启动的所有容器)
[root@docker-0001 ~]# docker rmi busybox:latest

# 查看镜像的详细信息
[root@docker-0001 ~]# docker inspect busybox:latest

# 查看镜像的历史信息
[root@docker-0001 ~]# docker history busybox:latest

# 给镜像添加新的名词和标签
[root@docker-0001 ~]# docker tag busybox:latest newname:newtag

docker容器管理命令

容器管理命令说明
docker run -it(d) 镜像名称:标签 启动命令创建启动并进入一个容器,后台容器使用参数 d
docker ps查看容器 -a 所有容器,包含未启动的,-q 只显示id
docker rm 容器ID-f 强制删除,支持命令重入
docker start|stop|restart 容器id启动、停止、重启容器
docker cp 本机文件路径 容器id:容器内路径把本机文件拷贝到容器内(上传)
docker cp 容器id:容器内路径 本机文件路径把容器内文件拷贝到本机(下载)
docker inspect 容器ID查看容器的详细信息
docker attach 容器id进入容器的默认进程,退出后容器会关闭
docker attach 容器id [ctrl+p, ctrl+q]进入容器以后,退出容器而不关闭容器的方法
docker exec -it 容器id 启动命令进入容器新的进程,退出后容器不会关闭

docker run** 启动一个新的容器 -i 交互式,-t 终端, -d 在后台启动

# 在后台启动容器
[root@docker-0001 ~]# docker run -itd nginx:latest 
9cae0af944d81770c90fdeacf7a632aaa749b0c9fbc0f4cb104e1d1257579e5e
# 在前台启动容器
[root@docker-0001 ~]# docker run -it --name myos centos:latest /bin/bash
[root@de46e6254efd /]# ctrl+p, ctrl+q # 使用快捷键退出,保证容器不关闭

# 查看正在运行的容器
[root@docker-0001 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED
de46e6254efd        centos:latest       "/bin/bash"              2 minutes ago  
9cae0af944d8        nginx:latest        "nginx -g 'daemon of…"   7 minutes ago  
# 只查看id
[root@docker-0001 ~]# docker ps -q
# 查看所有容器,包含未启动的
[root@docker-0001 ~]# docker ps -a

# 启动、停止、重启容器
[root@docker-0001 ~]# docker start   de46e6254efd
[root@docker-0001 ~]# docker stop    9cae0af944d8
[root@docker-0001 ~]# docker restart 9cae0af944d8

# 删除容器
[root@docker-0001 ~]# docker rm -f de46e6254efd
# 删除所有容器
[root@docker-0001 ~]# docker rm -f $(docker ps -aq)

# 进入容器的默认进程
[root@docker-0001 ~]# docker attach de46e6254efd
[root@de46e6254efd /]# exit # 退出后容器会关闭

# 查看容器详细信息
[root@docker-0001 ~]# docker inspect 9cae0af944d8
... ...
      "IPAddress": "172.17.0.2",
... ...
[root@docker-0001 ~]# curl http://172.17.0.2/

# 进入容器,查看路径
[root@docker-0001 ~]# docker exec -it 9cae0af944d8 /bin/bash
root@9cae0af944d8:/# cat /etc/nginx/conf.d/default.conf
... ...
      root   /usr/share/nginx/html;
... ...

# 从容器内拷贝首页文件到宿主机,修改后拷贝回容器内
[root@docker-0001 ~]# docker cp 9cae0af944d8:/usr/share/nginx/html/index.html ./index.html
[root@docker-0001 ~]# vim index.html
Hello Guodong
Hello Guodong
Hello Guodong
[root@docker-0001 ~]# docker cp ./index.html 9cae0af944d8:/usr/share/nginx/html/index.html
[root@docker-0001 ~]# curl http://172.17.0.2/

注:
docker attach 9cae0af944d8 #一般用于排错
docker exec -it 9cae0af944d8 /bin/bash #用于维护

容器内部署应用

[root@docker-0001 ~]# docker rm -f $(docker ps -aq)
[root@docker-0001 ~]# docker run -it --name myapache centos:latest
[root@a7f9d0c3e3e2 /]# rm -f /etc/yum.repos.d/*.repo
#---------------------不要退出这个终端,在另一个终端拷贝 yum 配置文件到容器--------------------
[root@docker-0001 ~]# docker cp /etc/yum.repos.d/CentOS-Base.repo myapache:/etc/yum.repos.d/
#------------------------回到创建容器的终端继续执行命令--------------------------------------
[root@a7f9d0c3e3e2 /]# yum install -y net-tools httpd
[root@a7f9d0c3e3e2 /]# echo Hello world >/var/www/html/index.html
[root@a7f9d0c3e3e2 /]# export LANG=C
[root@a7f9d0c3e3e2 /]# ifconfig
[root@a7f9d0c3e3e2 /]# /usr/sbin/httpd -DFOREGROUND
# 启动服务以后 ctrl-p, ctrl-q 退出
[root@docker-0001 ~]# curl http://172.17.0.2/
Hello world

总结:

管理镜像使用   **名称:标签**
管理容器使用   **容器ID**



作者:一个小运维
链接:https://www.jianshu.com/p/52d681f36415

相关资源:
IT运维运维管理 - Dcsdn

java 对Redis的导入和导出 - Dcsdn

GitOps 初探 - Dcsdn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值