黑马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

4,使用外部机器连接Redis

./redis-cli.rexe -h 宿主机ip -p 6379
docker 容器和宿主机文件传输
docker cp container:/root/ /opt
docker cp /opt container:/root

你可能感兴趣的:(linux,docker,linux,centos,运维)