docker日常操作

建议安装centos7.9系统,最小化安装,图形界面把能做的全做了,包括ip、时区、主机名等,软件选择最小安装,把devep tools开发包勾上
装完后系统没有自动补全命令功能
yum -y install bash-completion

docker 安装:

## centos7.2安装docker

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

二.安装CentOS7 docker镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

三.安装社区版docker
yum install docker-ce //自动会装上client和io端

四.启动docker容器
systemctl start docker

五.制作docker镜像加速器
添加国内docker源
# 创建或修改 /etc/docker/daemon.json 文件,修改为如下形式
{
    "registry-mirrors" : [
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://cr.console.aliyun.com/"
  ]
}
# 重启docker服务使配置生效
$ systemctl restart docker.service

## contos7.9安装

安装docker最低1.8或更高

卸载旧的docker
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine

装docker依赖包
#安装所需资源包
sudo yum install -y yum-utils
#设置docker下载地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

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

## centos8安装 docker

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 install docker-ce docker-ce-cli containerd.io

查看安装情况
yum list docker-ce --showduplicates | sort -r

启动docker服务
systemctl start docker

docker -v 看版本


docker持久化存储例子:

先在宿主机上建立3个持久化存储目录(默认在这个目录下/var/lib/docker/volumes)
docker volume create -d local mariadb_data 
docker volume create -d local mariadb_logs   
docker volume create -d local zabbix_server

启动容器
docker run -itd --name zabbix-server \
   -p 8080:80 --privileged \
   -v mariadb_data:/var/lib/mysql:Z \
   -v mariadb_logs:/var/log/mariadb:Z \
   -v zabbix_server:/etc/zabbix:Z \
   zabbix-docker:5.0



1)	Docker官网要求部署Docker引擎(虚拟化软件)的底层Host OS的Linux系统内核版本3.8+,最早期Windows操作系统不支持Docker虚拟化部署,新版的Windows系统可以支持Docker;
2)	Docker虚拟化建议部署至Linux操作系统平台(稳定、高效、开源、免费的),生产环境推荐Linux内核版本3.10+,对应的Linux操作系统发行版:RHEL7.x和CentOS7.x;
3)	基于CentOS6.x(6.5+)部署Docker引擎服务,指令如下:
#YUM安装Docker引擎服务;
yum install docker-io lxc cgroup device-mapper* -y
#查看Docker软件是否安装;
rpm -qa|grep docker
#启动Docker引擎服务;
service docker restart
#查看Docker引擎服务进程;
ps -ef|grep docker
4)	基于CentOS7.x(7.0+)部署Docker引擎服务,指令如下:
#YUM安装Docker引擎服务;
yum install docker* -y
#查看Docker软件是否安装;
rpm -qa|grep docker
#启动Docker引擎服务;
service docker restart
systemctl restart docker.service
#查看Docker引擎服务进程;
ps -ef|grep docker
如果出错要更换yum源,阿里云的不行,要换清华源:
清华大学CentOS 镜像使用帮助
请注意,CentOS 8 (非 Stream 版)已提前进入 EOL 停止服务阶段,因此镜像已被官方移动。如果您正在寻找关于这些系统的镜像,请参考 centos-vault 的帮助。
该文件夹只提供 CentOS 78,架构仅为 x86_64 ,如果需要较早版本的 CentOS,请参考 centos-vault 的帮助,若需要其他架构,请参考 centos-altarch 的帮助。
建议先备份 /etc/yum.repos.d/ 内的文件。
然后编辑 /etc/yum.repos.d/ 中的相应文件,在 mirrorlist= 开头行前面加 # 注释掉;并将 baseurl= 开头行取消注释(如果被注释的话)。 对于 CentOS 7 ,请把该行内的域名(例如mirror.centos.org)替换为 mirrors.tuna.tsinghua.edu.cn。 对于 CentOS 8 ,请把 mirror.centos.org/$contentdir 替换为 mirrors.tuna.tsinghua.edu.cn/centos。
以上步骤可以被下方的命令一步完成
# 对于 CentOS 7
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo

# 对于 CentOS 8
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo
注意其中的*通配符,如果只需要替换一些文件中的源,请自行增删。
注意,如果需要启用其中一些 repo,需要将其中的 enabled=0 改为 enabled=1。
最后,更新软件包缓存
sudo yum makecache

5)	如上步骤Docker引擎服务配置完毕,并且启动完成,如图所示:
 
6)	Docker虚拟化属于C/S(Client/Server)模式,Server-Engine服务,Client-Docker命令工具,查看docker客户端和服务端版本号:docker version;
 
7)	Docker虚拟化技术实施之前,了解三个概念:Docker镜像、Docker容器、Docker仓库;
	Docker镜像
Docker镜像类似Linux ISO镜像文件,底层模板,镜像中存储的各种软件、程序、LIB库、依赖环境等,Docker镜像结构分层(层次)的结构,每一层存储不同的软件和功能,镜像是只读的,不能被修改;
	Docker容器
Docker容器基于Docker镜像运行之后实体,Docker容器的底层是镜像,Docker容器所需文件、软件可以从镜像层中读取,没有镜像,就没有Docker容器,镜像是静止的,容器是活动的(进程和程序的关系);
	Docker仓库
Docker仓库是用于存储Docker镜像文件的地方,仓库分为公共和私有仓库,企业生产环境推荐自建私有仓库(安全、稳定、速度快);
8)	如果通过Docker引擎运行Docker容器,首先从公共仓库下载Docker镜像,基于Docker镜像再启动容器(默认Docker引擎从Docker国外官网下载镜像文件);
#查看本地服务器的镜像列表;(从远程仓库下载的)
docker images
#从docker官网仓库搜索tomcat|nginx|redis镜像;
docker search tomcat
docker search nginx
docker search redis
#从公共仓库下载tomcat镜像;
docker pull docker.io/tomcat
docker pull docker.io/nginx
docker pull docker.io/redis
 
#查看已经下载docker镜像;
 
#基于Docker镜像启动Tomcat容器(-i interactive交互、-t tty终端、-d daemon后台运行);

Docker run -–privileged –name=yeng-web01 –itd –p 80:80 docker.io/tomcat:latest   
Privileged是超级管理权限意思,--name改名

Docker exec –it id或名称  passwd root
直接执行命令改密码等

Cp /etc/skel/.bash*  /root/
这样解决容器里面的centos机器名称问题老是显示bash-4.1

Docker history  docker.io/nginx 
查看镜像到底是怎么做的,可以看到一些初始密码之类的东西

docker run -itd  docker.io/tomcat:latest
#查看Docker tomcat容器的运行状态;
docker ps
 
#查看Docker tomcat容器的IP地址;
docker inspect 0499058becea |grep -i ipaddr
 
#如何访问创建Tomcat容器(Tomcat软件服务,监听8080端口);
wget 172.17.0.2:8080
 
#将宿主机系统的8080端口映射到容器的8080端口;(第一个端口宿主机监听的,第二个端口是容器内部服务端口)
docker run -p 8080:8080 -itd docker.io/tomcat:latest
 
http://47.98.151.187:8080/ 
 



1、Docker虚拟化技术实战一(容器和镜像概念)
	Docker镜像
Docker镜像类似Linux ISO镜像文件,底层模板,镜像中存储的各种软件、程序、LIB库、依赖环境等,Docker镜像结构分层(层次)的结构,每一层存储不同的软件和功能,镜像是只读的,不能被修改;
容器系统:
基于底层镜像启动,并且在镜像最上层添加一层(容器层)读写层,容器层可以支持修改和读取的,对容器所有的写操作只作用于容器层,容器层需要的软件或者文件可以从镜像层去读取,没有镜像就不会有容器。(只写-容器层)
	Docker容器
Docker容器基于Docker镜像运行之后实体,Docker容器的底层是镜像,Docker容器所需文件、软件可以从镜像层中读取,没有镜像,就没有Docker容器,镜像是静止的,容器是活动的(进程和程序的关系);
	Docker仓库
Docker仓库是用于存储Docker镜像文件的地方,仓库分为公共和私有仓库,企业生产环境推荐自建私有仓库(安全、稳定、速度快);
2、Docker虚拟化技术实战二(容器和镜像实战)
1)Docker命令行指令实战:
#查看Docker镜像;
docker images
#删除Docker镜像;(强制删除-f参数)
docker rmi 6759d91a032b
#查看运行中的容器;
docker ps
#查看运行、停止、关闭的所有容器;
docker ps -a
#进入Docker容器系统bash终端;(exit退出即可)
docker exec -it 4f3a529813ce /bin/bash
#停止Docker容器;
docker stop 4f3a529813ce
#启动Docker容器;
docker start 4f3a529813ce
#删除Docker容器;
Docker rm 4f3a529813ce(-f强制删除运行中的容器)#删除所有的Docker容器;
for i in `docker ps|awk 'NR>=2 {print $1}'`;do docker rm -f $i ;done
docker ps -aq|xargs docker rm -f
docker rm -f `docker ps -aq`
docker rm -f $(docker ps -aq)
3、Docker虚拟化技术实战三(1台Nginx均衡2台Tomcat)
1)	基于一台物理机,部署1台Nginx均衡2台Tomcat,通过访问Host OS的80端口,能够访问Tomcat容器中的测试页面;
2)	基于Docker引擎启动3个Docker容器,首先下载Nginx和Tomcat镜像,下载的指令如下:
docker pull docker.io/nginx
docker pull docker.io/tomcat
 
3)	其中一个为Nginx容器,并且对外映射80:80端口规则,启动Nginx容器并且映射80端口的指令如下:
docker run -itd -p 80:80 docker.io/nginx:latest
docker ps -a
docker inspect 9ac1f1f9cdf4|grep -i ipaddr
 
4)	另外两台为Tomcat容器,启动Tomcat容器(无需映射端口)的指令如下:
docker run -itd docker.io/tomcat
docker run -itd docker.io/tomcat
 
5)	查看2台Tomcat容器的IP地址,并且记录IP地址;
docker inspect `docker ps -a|grep tomcat|awk '{print $1}'`|grep -i ipaddr|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq
 
6)	配置Nginx均衡2台Tomcat,实现负载均衡+反向代理,操作方式如下:
#进入Nginx容器;
docker exec -it 9ac1f1f9cdf4 /bin/bash
#进入Nginx WEB配置文件目录;
cd /etc/nginx/conf.d/
#排除#和空行的代码;
grep -vE "#|^$" default.conf 
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
#通过sed或者cat将新内容写入default.conf文件中;
cat>default.conf<<EOF
upstream tomcat_web {
	server 172.17.0.3:8080 weight=100 max_fails=2 fail_timeout=15;
	server 172.17.0.4:8080 weight=100 max_fails=2 fail_timeout=15;
}
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
		proxy_set_header Host \$host;
		proxy_pass http://tomcat_web;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
EOF
#修改替换未成功的部分参数指令;
sed -i 's/default.conf/\t/g' default.conf
#重启nginx服务即可;
nginx -t
nginx -s reload
 
#一台宿主机,启动99个Nginx WEB服务,指令如下:
for i in `seq 1 99`;do docker run -itd -p 80$i:80 docker.io/nginx;done
 
 
4、Docker虚拟化技术实战四(Docker启动CentOS容器)
1)	从Docker仓库下载CentOS6系统镜像;
docker pull docker.io/lemonbar/centos6-ssh
 
2)	基于CentOS6系统镜像启动CentOS6.x Docker容器,启动指令如下:(映射宿主机80和6022至容器中:80和22);
docker run -itd -p 80:80 -p 6022:22 docker.io/lemonbar/centos6-ssh:latest
 
3)	基于CentOS6.5容器部署各种软件、应用程序,部署方法跟物理机部署方法,完全一样,没有什么区别;
 
Docker exec 容器ID  命令行
Dokcer exec 65898f50bb44 ifconfig  //直接操作容器系统

4)	Docker虚拟化在生产环境有两种使用方式:
	基于Docker Engine直接启动应用APP(软件)容器;(管理和使用不方便)
	基于Docker Engine启动CentOS容器-容器中部署APP软件;(管理和使用方便),生产环境推荐方案;
5)	Docker宿主机跟容器拷贝资源或者共享资源操作指令:
#从宿主机拷贝文件至docker容器;
docker cp zabbix-3.2.6.tar.gz 1ccbd29c12c5:/tmp/
#从docker容器拷贝文件至宿主机;
docker cp 1ccbd29c12c5:/tmp/zabbix-3.2.6.tar.gz .
#将宿主机的/var/www/html目录挂载至docker容器的/usr/share/nginx/html目录,指令如下;
docker run -itd -v /var/www/html/:/usr/share/nginx/html/ docker.io/nginx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目工程师余工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值