//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
文章图片都是作者学习黑马程序员时截图,如有侵权会立即删除。