Docker学习笔记

Docker

组成部分

镜像 image 只读的模板 可以用来创建Docker容器

容器 container 独立运行的一个或一组应用。容器是用镜像创建的运行实例。
仓库 repository  是集中存放镜像文件的场所

$sudo 暂时拥有root用户权限

安装

卸载旧版本
  yum -y remove docker docker-common docker-selinux docker-engine
安装需要的软件包
  yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
  yum makecache fast
安装DOCKER CE
  yum -y install docker-ce
查看版本
	docker -v
启动docker
  systemctl start docker
测试
  docker version
  docker run hello-worlddo
卸载
  systemctl stop docker 
  yum -y remove docker-ce
  rm -rf /var/lib/docker

配置阿里云镜像仓库加速器

配置镜像加速CentOS7版本
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://sd7sgxrc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

直接运行即可

服务命令

启动 systemctl start docker
状态 systemctl status docker
停止 systemctl stop docker
重启 systemctl restart docker
自启 systemctl enable docker

帮助命令

帮助命令
  docker version
  docker info
  docker help
  

镜像命令

查看镜像
  docker images -a :列出本地所有的镜像(含中间映像层)
                -q :只显示镜像ID。
                --digests :显示镜像的摘要信息
                --no-trunc :显示完整的镜像信息
查找镜像  
  docker search 某个XXX镜像名字
                --no-trunc : 显示完整的镜像描述
                -s : 列出收藏数不小于指定值的镜像。
                --automated : 只列出 automated 									build类型的镜像;
下载镜像
    docker pull 镜像名字:版本号
    
删除镜像 
	删除单个
      docker rmi  -f 镜像ID
    删除多个
      docker rmi -f 镜像名1:版本号 镜像名2:版本号
    删除全部
      docker rmi -f $(docker images -q)

容器命令

新建并启动容器
    docker run -it --name=xx  镜像名:版本号 /bin/bash
           i:交互 t:终端 /bin/bash为进入容器的初始化指令
新建并启动守护式容器 不需要加/bin/bash
      docker run -id --name=XX 镜像名:版本号  
      i:交互   d:守护进程
查看正在运行的容器      	  查看历史运行的容器 
    docker ps           docker ps -a
进入正在运行的容器并以命令行交互
    docker exec -it 容器名 /bin/bash
重新进入docker attach 容器ID
        attach 直接进入容器启动命令的终端,不会启动新的进程
        exec 是在容器中打开新的终端,并且可以启动新的进程    
退出容器  -id创建的容器用exit退出不会停止容器
    exit 容器停止退出 ctrl+P+Q 容器不停止退出
启动容器
    docker start 容器ID或者容器名
重启容器
    docker restart 容器ID或者容器名
停止容器
    docker stop 容器ID或者容器名
强制停止容器
    docker kill 容器ID或者容器名
删除已停止的容器
    docker rm 容器ID
删除多个容器
        docker rm -f $(docker ps -aq)
重要
        docker run -it -p 8080:8080 tomcat
          -p 主机端口:docker容器端口
          -P 随机分配端口
查看容器日志
      docker logs -ft --tail 容器ID
        *   -t 是加入时间戳
        *   -f 跟随最新的日志打印
        *   --tail 数字 显示最后多少条
查看容器内运行的进程
      docker top 容器ID
重新进入docker attach 容器ID
上述两个区别
        attach 直接进入容器启动命令的终端,不会启动新的进程
        exec 是在容器中打开新的终端,并且可以启动新的进程

容器的数据卷

1.作用
容器数据持久化 
外部及其和容器的简介通信 
容器之间的数据交换
2.配置数据卷
创建容器时 使用-v参数 设置数据卷
docker run ...-v 宿主机目录(文件):容器内目录(文件)
目录必须是绝对路径 
如果目录不存在自动创建  可以挂在多个数据卷

数据卷容器

1.创建数据卷容器						docker run -it --name=c3 -v /volume centos:7 /bin/bash
2.创建启动c1 c2容器,使用 --volumes-from参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

Docker 应用部署

一、部署MySQL

  1. 搜索mysql镜像
docker search mysql
  1. 拉取mysql镜像
docker pull mysql:5.6
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建mysql目录用于存储mysql数据信息
mkdir ~/mysql
cd ~/mysql
docker run -id \
-p 3307: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=123456 \
mysql:5.6
  • 参数说明:
    • -p 3307:3306:将容器的 3306 端口映射到宿主机的 3307 端口。
    • -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。配置目录
    • -v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。日志目录
    • -v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。数据目录
    • **-e MYSQL_ROOT_PASSWORD=123456:**初始化 root 用户的密码。
  1. 进入容器,操作mysql
docker exec –it c_mysql /bin/bash
  1. 使用外部机器连接容器中的mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bmQ1Nor6-1584842218447)(F:/HM349/5.阶段五-流行框架/6.docker/文档/imgs/1573636765632.png)]

二、部署Tomcat

  1. 搜索tomcat镜像
docker search tomcat
  1. 拉取tomcat镜像
docker pull tomcat
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建tomcat目录用于存储tomcat数据信息
mkdir ~/tomcat
cd ~/tomcat
docker run -id --name=c_tomcat \
-p 8080:8080 \
-v $PWD:/usr/local/tomcat/webapps \
tomcat 
  • 参数说明:

    • **-p 8080:8080:**将容器的8080端口映射到主机的8080端口

      **-v $PWD:/usr/local/tomcat/webapps:**将主机中当前目录挂载到容器的webapps

  1. 使用外部机器访问tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjQ1TFAw-1584842218450)(F:/HM349/5.阶段五-流行框架/6.docker/文档/imgs/1573649804623.png)]

三、部署Nginx

  1. 搜索nginx镜像
docker search nginx
  1. 拉取nginx镜像
docker pull nginx
  1. 创建容器,设置端口映射、目录映射
# 在/root目录下创建nginx目录用于存储nginx数据信息
mkdir ~/nginx
cd ~/nginx
mkdir conf
cd conf
# 在~/nginx/conf/下创建nginx.conf文件,粘贴下面内容
vim nginx.conf
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}


docker run -id --name=c_nginx \
-p 80:80 \
-v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
-v $PWD/logs:/var/log/nginx \
-v $PWD/html:/usr/share/nginx/html \
nginx
  • 参数说明:
    • -p 80:80:将容器的 80端口映射到宿主机的 80 端口。
    • -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf:将主机当前目录下的 /conf/nginx.conf 挂载到容器的 :/etc/nginx/nginx.conf。配置目录
    • -v $PWD/logs:/var/log/nginx:将主机当前目录下的 logs 目录挂载到容器的/var/log/nginx。日志目录
  1. 使用外部机器访问nginx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SJKH2o63-1584842218451)(F:/HM349/5.阶段五-流行框架/6.docker/文档/imgs/1573652396669.png)]

四、部署Redis

  1. 搜索redis镜像
docker search redis
  1. 拉取redis镜像
docker pull redis:5.0
  1. 创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
  1. 使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379

s 目录挂载到容器的/var/log/nginx。日志目录

  1. 使用外部机器访问nginx

[外链图片转存中…(img-SJKH2o63-1584842218451)]

四、部署Redis

  1. 搜索redis镜像
docker search redis
  1. 拉取redis镜像
docker pull redis:5.0
  1. 创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0
  1. 使用外部机器连接redis
./redis-cli.exe -h 192.168.149.135 -p 6379
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值