docter篇:docter相关操作

一、Docker安装与启动

# 1.yum 包更新到最新
    # yum remove docker docker-common  docker-selinux docker-engine
    # rm -rf /var/lib/docker
    yum update

# 2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
    yum install -y yum-utils device-mapper-persistent-data lvm2

# 3.设置yum源为阿里云
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 4.安装dovter并自动确认
    yum install docker-ce -y

# 5. 查看版本,docker发布的年月日命名
    docker -v   

# 6. 启动docker
    systemctl start docker  

# 7.关闭docker
    systemctl stop docker 
   
# 8. 开机自启动
    systemctl enable docker  

# 9.查看docter信息 
    docker info

# 10.重启docker
    systemctl restart docker

# 11.查看docter状态
    systemctl status docker

# 12.查看docter帮助
    docker --help

二、docter镜像加速

2.1 编辑该文件

vi /etc/docker/daemon.json 

2.2 文件内容插入如下

{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

三、镜像相关命令

3.1 常用命令

# 远程仓库下载的,官方的https://hub.docker.com/
# 镜像:images

#1  下载镜像  
# docker pull下载
# centos:centos7  镜像名字:版本/tag
    docker pull centos:centos7
    docker pull  redis  # 不写冒号,默认下最新的latest

# 2 查找镜像---》是否是官方,点赞数大小
    -方式一网址搜:https://hub.docker.com/
    -方式二: docker search centos(镜像名)

# 3 查看本地镜像
    docker images

# 4 镜像删除
    docker rmi 镜像名字:tag/镜像id

# 5 一次性删除所有镜像
    docker rmi `docker images -q`

3.2 官网查看镜像信息

NAME:仓库名称
DESCRIPTION:镜像描述
STARS:用户评价,反应一个镜像的受欢迎程度
OFFICIAL:是否官方
AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建的

四、容器相关命令

# 1 查看正在运行的容器
    docker ps
# 2 查看所有容器,无论停止还是运行
    docker ps -a

# 3 创建容器并启动(创建容器,运行容器)
    docker run -id --name=mycentos -v 宿主机路径:容器路径 -p 宿主机端口:容器端口
    -i:表示运行容器 镜像名字:tag
    -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

    --name :为创建的容器命名。
    -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

    (1)交互式方式创建容器
        docker run -it --name=容器名称 镜像名称:标签 /bin/bash
    (2)守护式方式创建容器:
        docker run -di --name=容器名称 镜像名称:标签
        守护式方式登录容器
        docker exec -it 容器名称 (或者容器ID)  /bin/bash



### docker run -it centos:centos7
    -启动容器,自动命名,进入到容器内部,如果exit退出,容器也就结束了,不运行了
    -因为容器运行必须有一个前台进程夯住阻塞,前台进程结束,容器也就结束了

### docker run -id --name=mycentos7 centos:centos7
    -进入到容器内部操作
    -ssh连过去(需要容器支持,安装ssh,启动,监听22端口),一般不用
    -docker exec -it 96a5 /bin/bash # 本质是在96a5容器上执行一下 bash命令

### docker run -id --name=mycentos2 -v /root/lqz:/home/lqz centos:centos7
    -以后再容器内部操作lqz文件夹和在宿主机操作是一样的
    
### docker run -id --name=myredis -p 6380:6379 redis
    -以后直接链接宿主机的6380就相当于链接容器的6379端口
    
    
#### mysql做目录映射,创建数据库,删除容器操作,再用别的容器运行,数据库还在
    mkdir /home/mysql
    mkdir /home/mysql/conf.d
    mkdir /home/mysql/data/
     
    # 创建my.cnf配置文件
    touch /home/mysql/my.cnf
    [mysqld]
    user=mysql
    character-set-server=utf8
    default_authentication_plugin=mysql_native_password
    secure_file_priv=/var/lib/mysql
    expire_logs_days=7
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    max_connections=1000


    docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

#3 停止容器
    docker stop 容器id

# 启动容器
    docker start 容器id

#4 删除容器:必须先停止再删
    docker rm 容器id 容器id 容器id

#5 文件拷贝
    # 从宿主机copy文件到容器
    docker cp 需要拷贝的文件或目录 容器名称:容器目录
    docker cp lqz.txt ff78cece7d61:/home

    #从容器copy文件到宿主机
    docker cp 容器名称:容器目录 需要拷贝的文件或目录
    docker cp ff78cece7d61:/home/lqz.txt /root/lqz.txt

#6 查看容器详情,ip地址
    docker inspect ff78cece7d61(容器名/容器id)
    docker inspect --format='{{.NetworkSettings.IPAddress}}' ff78cece7d61

#7 退出当前容器
    exit
# netstat 命令没有
    yum install net-tools 安装

五、应用部署

# 运行mysql
    docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysqlmy -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7


# 运行redis
    docker run -di --name=myredis5 -v /root/lqz/redis.conf:/data/redis.conf   -p 6379:6379 redis redis-server /data/redis.conf

    vim redis.conf  # 配置如下
    --------------------------------------
    bind 0.0.0.0
    daemonize no
    protected-mode no
    requirepass 123456
    --------------------------------------


# 运行nginx
    docker run -di --name=mynginx -p 80:80 nginx
posted @ 2022-08-15 15:40  马氵寿  阅读(303)  评论(0编辑  收藏  举报