Docker的学习使用笔记

//linux常用命令
echo: 输出
cd: 跳转目录
touch: 创建文件
mkdir: 创建文件夹
cat: 查看文件
pwd: 查看当前路径
\: 表示命令还没输入完,可在下一行继续输入
ll: 查看当前目录文件
ip add: 查看虚拟机ip地址
vim: 文本编辑器(进入后键盘会变成文本编辑,编辑好文本后按esc切换模式输入:wq保存并退出)
<或者>: 重定向
eg: echo Hello World > /root/test.txt 向指定文件输入东西
//创建数据库使用的编码
字符集: utf8
排序规则: utf8_general_ci

vim具体操作((4条消息) Linux 系统-----vim命令详解@chameleon的博客-CSDN博客linux vim

在虚拟机上下载安装docker:

以下都是命令行操作,出现的输入界面按y就行,是系统问你是否确认下载
//用root账户进行操作:
su -或者su root
//输入命令后会叫你输入密码,就是你的个人密码(注意密码是不会显示的,不要以为是系统卡了),输入好之后你的账户就会变为root
//更新yum包
yum update
//设置yum源
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
//安装docker
yum install -y docker-ce
//查看docker版本
docker -v

配置阿里云镜像加速器:

配置好之后下载效率从kb直接变成mb,所以用官方还是阿里云不用我说了吧

在阿里云官网登录后点击主页右上角控制台,再点击左上角面包屑搜索镜像服务选择镜像工具、镜像加速器,直接将生成的代码复制到命令行就行,注意,Ubuntu和CentOS是相同的

docker命令:

服务相关命令:

//启动docker服务
systemctl start docker
//查看docker状态
systemctl status docker
//停止docker服务
systemctl stop docker
//重启docker服务
systemctl restart docker
//开机自启动docker服务
systemctl enable docker
//重新加载daemon.json文件
systemctl daemon-reload

Docker镜像相关命令:

//查看镜像
docker images
//REPOSITORY(镜像名称) TAG(镜像版本号)  IMAGE ID(镜像标识)   CREATED(创建时间) SIZE(镜像大小)
//查看所有镜像标识
docker images -q
//搜索镜像
docker search xxx
//拉取镜像
//hub.docker.com(docker官网,可搜索需要的镜像以及版本)
docker pull xxx:xxx(名称加版本号,例如redis:3.6)
//删除镜像
docker rmi 镜像标识,可查看镜像复制 或者 xxx:xxx(名称加版本号,例如redis:3.6)
//给镜像打标签,就是修改镜像的名字和版本
docker tag 已有镜像名称:版本 新的名字:新的版本

容器相关命令:

//查看容器
docker ps(查看在运行的容器)
docker ps -a(查看历史运行过的容器)
//创建容器
docker run -it --name=xxx xxx:xxx /bin/bash
//-i表示容器保持运行,没有客户端连接也一直运行,-t表示给容器分配一个伪终端用于输命令(通过-it创建的容器一创建就会进入一退出就会销毁),-it就表示-i -t,--name=设置容器名字,后面加上镜像名和版本号,最后打开一个shell窗口
docker run -id --name=xxx xxx:xxx
//-d表示后台运行,这样创建不会自动进入,退出也不会销毁,所有也不需要打开shell窗口
//进入容器
docker exec -it name /bin/bash(分配一个终端并进入容器)退出输入exit即可
//启动容器
docker start name
//停止容器
docker stop name
//删除容器
docker rm name
//查看容器信息
docker inspect name

数据卷:

将宿主机的数据文件和doker容器的数据文件挂载起来进行双向绑定,默认数据卷的存放地址为/var/lib/docker/volumes/

//在启动容器时使用-v配置数据卷,目录使用绝对路径,不存在时会自动创建
docker run ... -v 宿主机目录(文件):容器内目录(文件)...
eg: docker run -it --name=c1 -v /root/data:/root/data_t centos:7 /bin/bash
 

数据卷容器(多个容器共享数据卷容器的数据)

Docker应用部署:

mysql:

docker run -id \
> -p 3306:3306 \
> --name=c_mysql \
> -v $PWD/conf:/etc/mysql/conf.d \
> -v $PWD/logs:/logs \
> -v $PWD/data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=Zxy020729 \
> mysql:8.0
//进入容器后登录mysql命令
mysql -uroot -p密码(或者mysql -uroot -p回车后输入密码)

tomcat:

docker run -id --name=c_tomcat \
> -p 8080:8080 \
> -v $PWD:/usr/local/tomcat/webapps \
> tomcat

DockerFile:

docker镜像原理:

我的理解是同一操作系统内核是相同的,但是外层包装不同,就比如centos、麒麟都是linux操作系统,但是操作方式不同,在docker中下载镜像时有一个特殊文件机制,可以将已有的文件复用,也就是内核相同可以复用,如果两个包都需要jdk也可以复用,如果要修改内容都是在容器内修改,不会改变文件结构

 

docker镜像制作:

将容器打包成一个压缩包传递,到新的地方解压就行,挂载的目录不会打包。

 

dockerfile:

关键字:(4条消息) DockerFile 关键字zhanghe_zht的博客-CSDN博客dockerfile关键字

DockerCompose:

docker-compose.yml文件编写:(4条消息) docker-compose.yml 配置文件编写详解种子选手的博客-CSDN博客docker-compose.yml 编写

//下载dockercompose命令:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
//下载好添加可执行权限
chmod +x /usr/local/bin/docker-compose
//查看版本
docker-compose -v
//在docker-compose.yml同级目录下输入docker-compose up启动

Docker私有仓库:

Docker可以搭建一个自己的仓库存自己的镜像,基于官方提供的DockerRegistry来实现。普通搭建方式是没有图形界面但是功能齐全的私有仓库,命令如下:

docker run -d \
> --restart=always \
> --name registry \
> -p 5000:5000 \
> -v registry-data:/var/lib/registry \
> registry

第二种是使用docker-compose搭建具有图形化界面的仓库,docker-compose.yml文件如下:

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8180:80
    environment:
      - REGISTRY_TITLE=XXX私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

因为Docker仓库使用的是http协议,默认不被Docker信任,所以还需要修改一个配置:

#打开要修改的文件
vi etc/docker/daemon.json
#添加内容
"insecure-registries": ["http://8.130.40.99:8180"]
#重加载
systemctl daemon-reload
#重启Docker
systemctl restart docker

配置好之后,创建一个文件夹存放docker-compose.yml运行就行。

推送和拉取镜像:

#推送前需要tag一份本地镜像,名字前缀为私有仓库地址:
docker tag nginx:latest 8.130.40.99:8180/nginx:1.0
#推送
docker push 8.130.40.99:8180/nginx:1.0
#拉取
docker pull 8.130.40.99:8180/nginx:1.0

文章图片都是作者学习黑马程序员时截图,如有侵权会立即删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值