赞
踩
黑马:https://www.bilibili.com/video/BV1CJ411T7BK?p=21
开源的 应用容器 引擎
基于 GO 语言实现
Dockers让开发者将 应用+环境 一起打包到一个轻量级可移植的容器中,发布到Linux机器上
容器使用沙箱机制,相互隔离
# yum 包更新到最新
yum update
# 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker,出现界面都按y
yum install -y docker-ce
# 查看docker版本
docker -v
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZNDHHxkS-1653805254204)(imgs/image-20220415100045229.png)]
1、容器container的网络服务不能直接和外部机器通信
2、但!宿主机的网络服务可以和外部机器直接通信
3、容器container可以和宿主机直接通信
所以,我们可以在启动容器时,做好容器和宿主机的端口映射,外部机器即可访问容器container
使用 Alibaba 镜像加速器
登录自己的账号,每个人的加速器地址是不同的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-njX8qzMh-1653805254205)(imgs/image-20220415100415548.png)]
start - stop // restart // status // enable
systemctl --- docker
# 启动 docker 服务
systemctl start docker
# 停止 docker 服务
systemctl stop docker
# 重启 docker 服务
systemctl restart docker
# 查看 docker 服务状态
systemctl status docker
# 开启-------自启动-------- docker 服务
systemctl enable docker
搜索 - 拉取 - 删除
查看本地镜像
docker ---
#搜索 远程镜像
docker search xxx
#拉取 远程镜像
docker pull xxx[:version] #如果不知道镜像版本,去dockerhub搜索对应镜像
# 本地镜像 列表 REPOSITORY TAG IMAGE_ID CREATED SIZE
# 仓库 - 版本 - 镜像ID - 创建时间 - 大小
docker images
#查看所有的镜像 ID
docker images -q
#删除 本地镜像
docker rmi IMAGE_ID
#删除所有的镜像
docker rmi `docker images -q`
临时启动并进入容器:
docker -run -it --name=c1 centos:7 /bin/bash
参数说明:
要退出终端,直接输入 exit: 容器随之停止运行
-it : 创建交互式容器
-id : 创建后台容器
启动容器后台运行:
在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。
docker run -id --name=c1 centos:7
**注:**加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec [进入容器,若从这个容器退出,容器不会停止]
#查看 正在运行 的容器 docker ps #查看 所有 的容器 docker ps -a #查看 所有 的容器的id docker ps -aq #进入后台容器【退出容器不会关闭】 docker exec -it 容器ID /bin/bash #启动 start docker start 容器ID #停止 stop docker stop 容器ID #重启容器 docker restart 容器ID #查看容器信息 inspect docker inspect 容器ID #删除 rm [只有容器停掉后,才能删除rm] docker rm 容器ID #删除所有终止状态(exited)的容器 docker container prune
1、搜索 镜像
docker search mysql
2、拉取 镜像
docker pull mysql:5.6
3、创建 容器,设置端口映射、目录映射
# 在/root下创建 mysql目录 mkdir ~/mysql cd ~/mysql # 启动mysql容器 docker run -id \ -p 3307:3306 \ #端口映射 --name=c_mysql \ #容器名称 # 挂载数据卷 [目录映射:配置文件、日志文件、持久化位置] -v $PWD/conf:/etc/mysql/conf.d \ #mysql配置文件 -v $PWD/logs:/logs \ #mysql日志文件 -v $PWD/data:/var/lib/mysql \ #mysql数据持久化位置 # ------------------- -e MYSQL_ROOT_PASSWORD=123456 \ #mysql-root密码 mysql:5.6 #进入后台容器mysql docker exec -it c_mysql /bin/bash
需求:在Dockers容器中部署Tomcat, 通过外部机器访问Tomcat部署的项目
1、搜索tomcat镜像 docker search tomcat
2、拉取tomcat镜像 docker pull tomcat
3、创建容器
#在root目录下创建tomcat目录
mkdir ~/tomcat
cd ~/tomcat
#启动tomcat容器
docker run -id \
-- name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat
4、部署项目
将项目扔到tomcat目录下面
5、测试访问
需求:在Dockers容器中部署Nginx,并通过外部机器访问Nginx
1、搜索Ngnix镜像
2、拉取Nginx镜像
3、创建容器
#创建目录
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
#在 ~/nginx/conf下创建 nginx.conf 文件,粘贴内容
vim nginx.conf
#启动容器
docker run -id \
--name=c_nginx \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
4、访问Nginx
需求:在Docker部署Redis容器,访问redis
1、搜索redis镜像
docker search redis
2、拉取redis镜像
docker pull redis:5.0
3、创建容器,设置端口映射
decker run -id --name=c_redis 6379:6379 redis:5.0
1、Linux文件系统分为 bootfs 和 rootfs 两部分
2、 Docker镜像是由特殊的文件系统叠加而成
3、容器 container =》镜像 Image
docker commit 容器id 镜像名称:版本号 #将容器转为镜像
docker save -o 压缩文件名称 镜像名称:版本号 #把镜像转为压缩文件
docker load -i 压缩文件名称 #将压缩文件转为镜像
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKJe4vKq-1653805254212)(imgs/image-20220516222243022.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCUqOup7-1653805254213)(imgs/image-20220516222438005.png)]
dockerfile是一个文件,包含了指令集 ,用于构建 build 出一个镜像Image
开发人员:可以为开发团队提供一个完全一致的开发环境
测试人员:直接拿开发时所构建的镜像 or Dockerfile文件构建一个Image
运维人员:部署时实现应用的无缝移植
# 创建一个 docker-files 目录
mkdir docker-files
# 创建一个 centos_dockerfile 文件
vim centos_dockerfile
# centos_dockerfile 文件
FROM centos:7
MAINTAINER itheima <dayda.@qq.com>
RUN yum install -y vim # linux命令
WORKDIR /usr # 定义工作目录
CMD /bin/bash # 定义容器启动后执行的命令
# 构建 镜像Image
docker build -f ./centos_dockerfile -t itheima_centos:1.0 .
# 创建 容器
docker run -id --name=c2 itheima_centos:1.0
1、将 springboot 项目打成 jar包
2、找到target目录,将 jar包 传到 服务器的 docker-files 目录下
3、编辑 dockerfile 文件
FROM java:8
MAINTAINER itheima
# 将jar包添加到容器中
ADD springboot.jar app.jar
CMD java-jar app.jar
4、构建 镜像 docker build -f dockerfile文件路径 -t 镜像名称:版本 .
5、创建 容器【配置端口映射9000-》8080】
docker run -id -p 9000:8080 镜像名称
6、访问 项目【端口9000】
7、方式一:把 dockerfile 给测试人员。方式二:把 Image 镜像给测试人员
8\还有个命令要提下,可以查看容器运行时的日志
docker logs 容器id
1
1、安装dockercompose
2、卸载dockercompose
3、a
mkdir docker-compose
vim docker-compose.yml
version: '3'
services:
nginx:
image: nginx
ports:
-80:80
links:
-app
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
app:
image: app
expose:
-"8080"
4、创建 ./nginx/conf.d目录 ,创建配置文件vim itheima.conf
server{
listen:80;
access_log off;
location / {
proxy_pass http://app:8080;
}
}
5、启动
docker-compose up
6、访问Nginx
1、搭建私有仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEkPJsV6-1653805254217)(imgs/image-20220416135123697.png)]
2、上传镜像到私有仓库
# 1\ 启动私有仓库容器
# 2、标记待传镜像IMAGE 为私有仓库的镜像
docker tag centos:7 私有仓库服务器IP:5000/centos:7
# 3\ 上传镜像到私有仓库
docker push 私有仓库服务器IP:5000/centos:7
3、拉取镜像
docker pull 私有仓库服务器IP:5000/centos:7
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。