linux|黑马docker总结笔记

docker镜像加速
vim /etc/docker/damon.json
登录并使用阿里云镜像加速器
docker镜像相关命令

  • 查看镜像
docker images

  • 搜索镜像
docker search redis

  • 拉取镜像
docker pull IMAGE

  • 删除镜像
docker rmi IMAGE

查看容器
docker ps docker ps -a

创建容器
#交互式容器 #创建容器并进入 docker run -it --name=c1 centos:centos7 /bin/bash exit#退出后容器停止#守护式容器 #创建容器在后台 docker run -id --name=c2 centos:centos7 #进入容器 docker exec -it c2 /bin/bash exit#容器继续运行

docker容器的数据卷
  • 数据卷的概念及作用
  • 配置数据卷
  • 配置数据卷容器
    数据卷
  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器可以挂载多个数据卷
    作用
  • 数据持久化
  • 外部机器和容器之间的通信
  • 容器之间的数据交换
配置数据卷
创建容器时,使用-v参数设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件) ...

注意事项:
  • 目录必须是绝对路径
  • 如果目录不存在,会自动创建
  • 可以挂载多个数据
数据卷容器
1,多个容器挂载同一个数据卷
2,数据卷容器
配置数据卷容器(c1,c2是容器,c3是数据卷容器)
1,创建启动c3数据卷容器,使用-v参数
docker run -it --name=c3 -v /volume centos:centos7 /bin/bash

2.c创建启动c1,c2容器,使用–volume-from参数
docker run -it --name=c1 --volume-from c3 centos:centos7 /bin/bash docker run -it --name=c2 --volume-from c3 centos:centos7 /bin/bash

查看绑定的目录
docker inspect c1 "HostConfig":{"Binds":["/root/data:/root/data_container"]} "Mounts":[{"Source":"/root/data","Destination":"/root/data_container"}]

docker应用部署
  • MySQL
  • Tomcat
  • Nginx
  • Redis
    需求:在docker容器中部署MySQL,并通过外部MySQL客户端操作MySQL server。
    1,搜索mysql镜像
    2,拉取mysql镜像
    3,创建容器
    4,操作容器中的mysql
MySQL部署
  • 容器内的网络服务和外部机器不能直接通信
  • 外部机器和宿主机可以直接通信
  • 宿主机和容器可以直接通信
  • 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
  • 这种操作称为:端口映射
#在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysql #将容器的3306映射到宿主机的3307 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

Tomcat部署
需求:在docker容器中部署Tomcat,并通过外部机器tomcat部署的项目。
1,搜索镜像
2,拉取镜像
3,创建容器,设置端口映射,目录映射
#在/root目录下创建tomcat目录用于存储tomcat数据信息 mkdir ~/tomcat cd ~/tomcat docker run -id --name=c_tomcat \ -p 8080:8080 \ -v $PWD:/usr/local/tomcat/webapps \ tomcat

4,创建tomcat内容
5,测试
nginx部署
需求:在docker容器中部署nginx,并通过外部机器nginx部署的项目。
1,搜索镜像
2,拉取镜像
3,创建容器,设置端口映射,目录映射
#在/root创建nginx目录,存储信息 mkdir ~/nginx cd ~/nginx mkdir 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/heml:/usr/share/nginx/html \ nginx

4,测试
redis部署
需求:在docker容器中部署redis,并通过外部机器redis部署的项目。
1,搜索镜像
2,拉取镜像
3,创建容器,设置端口映射
docker run -id --name=c_redis -p 6379:6379 redis:5.0

【linux|黑马docker总结笔记】4,使用外部机器连接Redis
./redis-cli.rexe -h 宿主机ip -p 6379

docker 容器和宿主机文件传输 docker cp container:/root/ /opt docker cp /opt container:/root

    推荐阅读