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
- 容器内的网络服务和外部机器不能直接通信
- 外部机器和宿主机可以直接通信
- 宿主机和容器可以直接通信
- 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机上。外部机器访问宿主机的该端口,从而间接访问容器的服务。
- 这种操作称为:端口映射
#在/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
推荐阅读
- docker|Docker部署Mysql常见问题总结
- docker|docker笔记总结
- 2022年4月9日记:Linux服务器开发,Darren,fastdfs架构分析和配置
- gitlab|gitlab+Jenkins+harbor+kubernetes的DevOps连通构建
- docker Kubernetes框架解析和安装步骤详解——docker开发教程
- docker持续集成操作详解——docker开发教程
- docker组合compose操作和使用详解——docker开发教程
- docker日志管理介绍和使用——docker开发教程
- docker cloud云服务使用和操作——docker开发教程