Docker

docker教程

5.docker中的名词概念

镜像:

docker镜像就好比是一个模板,可以通过这个模板来创建多个容器服务(最终服务运行或者项目运行就是在容器中的)

容器:

Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的。容器可以启动、停止、删除等基本命令。目前就可以把这个容器理解为就是一个简易的linux系统。

仓库:

仓库就是存放镜像的地方;仓库分为共有仓库和私有仓库。

6.安装Docker

环境准备

  1. 需要Linux基础
  2. CentOS7
  3. 我们使用XShell

环境查看

# 系统内核是 3.10以上的
[centos4@bogon /]$ uname -r
3.10.0-693.el7.x86_64
# 系统版本
[centos4@bogon /]$ cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

安装

帮助文档:

# 1.卸载旧的版本
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 2.需要的安装包
sudo yum install -y yum-utils

# 3.设置镜像仓库
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo # 默认是国外的
# 推荐使用阿里云的    
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

# 4.更新
yum makecache fast

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

# 6.启动docker
sudo systemctl start docker

# 7.测试docker
sudo docker run hello-world

# 8.测试docker镜像
docker images

# 删除docker
yum remove docker-ce

7.阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://kaxr8ik8.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

8.Run的流程和Docker原理

image-20220427163043380

9.docker的常用命令

帮助命令

docker version # 显示docker版本信息
docker info    # 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help 帮助命令
docker images # 查看所有镜像
docker pull mysql # 下载mysql镜像
docker rmi -f e73346bdf465 # 删除镜像
docker rmi -f $(docker images -aq) #删除全部镜像

10.容器命令

说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习

# 1.下载centos
docker pull centos
# 2.新建容器并启动
docker run [可选参数] image
# 参数说明
--name="Name" 		# 容器名字 tomcat01 tomcat02 用来区分容器
-d					# 后台方式运行
-it					# 使用交互方式运行,进入容器查看内容
-p					# 指定容器的端口 -p 8080:8080
	-p ip:主机端口 容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
	容器端口
-P					# 随机指定端口
# 1.启动并进入容器
docker run -it centos /bin/bash
# 2.退出容器
exit
# 3.列出当前正在运行的容器
docker ps
# 4.列出当前正在运行的容器+历史运行过的容器
docker ps -a
# 5.显示最近创建的容器
docker ps -a -n=1
# 6.只显示容器的编号
docker ps -aq
# 1.exit 直接停止并退出容器
# 2.查询运行中的镜像
docker ps #发现无
# 3.启动centos镜像
docker run -it centos /bin/bash
# 4.容器不停止退出
Ctrl + p + Q

删除容器

1.docker rm 容器id				   #删除指定容器 不能删除正在运行的容器
2.docker rm -f $(docker ps -aq)	 	#删除所有的容器
3.docker ps -a -q|xargs docker rm 	#删除所有的容器

启动和停止容器的操作

docker start 容器id	# 启动容器
docker restart 容器id	# 重启容器
docker stop 容器id	# 停止当前正在运行的容器
docker kill 容器id	# 强制停止当前容器

11.常用其它命令

后台启动命令

# 命令 docker run -d 镜像名
docker run -d centos
# 问题docker ps,发现centos停止了
# 常见的坑:docker容器使用后台运行,就必须要有一个前台进程,docker发现没有应用,就会自动停止
# nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了	。

查看日志

docker logs -f -t --tail 10  3a2e6b73b4ed

14.部署Nginx

# 1.搜索nginx
docker search nginx
# 2.安装nginx
docker pull nginx
# 3.启动
docker run -d --name nginx01 -p 3344:80 nginx
	# -d 后台运行
	# --name 给容器命名
	# -p 宿主机端口:容器内部端口
# 4.本地访问nginx
curl localhost:3344
# 5.宿主机访问
http://192.168.32.131:3344/
# 6.进入nginx
docker exec -it nginx01 /bin/bash
# 7.进入 cd /etc/nginx
# 8.停止
docker stop 45375945

image-20220428215134267

思考问题:

我们每次改动nginx配置文件,都需要进入容器内部?十分麻烦,我要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改 -v 数据卷

15.部署Tomcat

# 官方的使用
docker run -it --rm tomcat:9.0
# 我们之前的启动都是后台,停止了容器之后,容器还是可以查到 docker run -it --rm,一般用来测试,用完删除。

# 下载再启动
docker pull tomcat

# 做映射并启动
docker run -d -p 3355:8080 --name tomcat01 tomcat

# 测试访问

# 进入
docker run -d -p 3355:8080 --name tomcat01 tomcat
# 发现问题:1.linux命令少了。2.没有webapps。阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉。保证最小可运行的镜像!

16.部署ES+Kibana

# es 暴漏的端口很多!
# es 十分的耗内存!
# es 的数据一般需要放置到安全目录!挂载
# --net somenetwork:网络配置

#启动elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

# 启动后,linux就卡住了,docker stats 查看 cpu的状态
# 测试一下es是否启动成功:curl localhost:9200
# 增加内存设置:
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2

17.Portainer可视化面板安装

  • portainer(临时)
docker run -d -p 8088:9000 \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer

访问地址:http://192.168.32.131:8088/#/init/admin

  • Rancher(CI/CD)

18.镜像原理之联合文件系统

19.镜像原理之分层立即

20.Commit镜像

持续更新中…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

coder-N

踏实 勤奋 努力 拼搏

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

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

打赏作者

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

抵扣说明:

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

余额充值