docker基础

docker容器化技术,是一个开源的应用容器引擎 解决了软件跨环境迁移的问题
docker的架构 仓库里存放镜像(官方仓库和私有仓库),使用时本地没有该镜像则从仓库下载 容器是从镜像创建出来的(类似于类和对象的关系) 镜像的本质是多层文件系统

docker安装步骤

1)yum update 升级本地yum包

2) yum install -y yum-utils 安装工具集

3)yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安装docker官方源

4)sudo yum makecache fast 更新yum缓存

5)yum -y install docker-ce 安装docker

6)service docker start 启动docker服务

7)docker -v 查看docker版本

由于docker官方仓库是国外的,下载较慢,我们可以配置一些阿里云,腾讯云等的镜像加速器,加快下载速度 Docker 中国官方镜像加速可通过 registry.docker-cn.com 访问

执行如下命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 的启动关闭等服务命令
systemctl start docker
systemctl stop docker
systemctl restart docker
systemctl status docker
systemctl enable docker 开机启动

docker镜像命令
docker images 查看本机的所有docker镜像信息
docker images -q 查看本机的所有docker镜像id
docker search redis 从网络中查看某软件在docker仓库的信息,是否存在
docker pull redis 从仓库拉取软件的镜像 默认拉取的是最新版,如果指定版本 docker pull redis:5.0
查看具体镜像文件的版本可以上 hub.docker.com查看支持软件的哪些版本,拉取的版本号需要和官方支持的版本号一致
docker rmi 镜像id/镜像名:版本 删除镜像

容器命令
docker run -it --name container1 centos:7 创建并运行一个容器 -i一直运行着,即使没有客户端连接也运行着 -t 与容器进行交互式启动,启动后直接进入容器 -d 表示可后台运行容器 (守护式运行)
docker ps 查看正在运行的容器
docker ps -a 查看所有容器,包括历史的已停止运行的
docker exec -it 容器名称 /bin/bash 进入容器(容器必须是运行的才能进入)
exit 从容器中退出,用id方式创建的容器,退出容器容器不会停止运行 用it方式运行的容器,容器会停止运行

docker stop 容器名称 停止一个容器
docker start 容器名称 启动一个容器
docker rm 容器名称 删除一个容器
docker inspect 容器名称 查看容器的信息

数据卷的作用
1.容器数据持久化
2.外部机器和容器间接通信
3.容器之间数据交换

创建容器时将宿主机的文件夹挂载到容器,实现两个文件夹内文件的同步,从而实现容器数据的持久化 -v 宿主机被挂载的文件:容器对应文件夹
一个容器可以挂载多个数据卷,一个数据卷也可以被多个容器挂载. 目录必须是绝对路径,目录不存在会被自动创建
docker run -it --name c1 -v ~/dockerdata:/root/dockerdata centos:7

两个容器同时挂载同一个数据卷,那么A容器修改数据则B容器会马上同步,从而实现容器之间数据的交换.

docker部署常用应用

1.首先创建应用数据目录
[root@localhost /]# mkdir -p /root/docker/mysql
[root@localhost /]# mkdir -p /root/docker/tomcat
[root@localhost /]# mkdir -p /root/docker/nginx
[root@localhost /]# mkdir -p /root/docker/redis

2.进入 cd /root/docker/mysql

3.执行命令创建容器
docker run -id
-p 3306: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

4.进入容器操作
docker exec -it c_mysql /bin/bash
5.登录mysql
mysql -uroot -p123456

最新版的mysql密码加密方式改变了,执行下面的命令还用以前的加密方式,老版本的sqlyog才可以登录
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’; #修改加密规则
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘123456’ PASSWORD EXPIRE NEVER; #更新用户的密码
FLUSH PRIVILEGES; #刷新权限

tomcat容器的创建
cd /root/docker/tomcat
docker run -id --name=c_tomcat
-p 8080:8080
-v $PWD:/usr/local/tomcat/webapps
tomcat

nginx容器的创建
cd /root/docker/nginx/

然后执行
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

部署redis
docker run -id --name=c_redis -p 6379:6379 redis

docker镜像是由特殊的文件系统叠加而成,最底层是bootfs,并使用宿主机的,第二层是rootfs,其它的层再往上叠加

docker镜像的制作
1.容器 commit 可以生成镜像 docker commit 容器id 镜像名称:版本
2.镜像 save可以压缩成文件 docker save -o 压缩后的文件名称 镜像名称:版本
3.文件 load 可以加载成镜像 数据卷存放的数据需要重新挂载,生成的镜像里是没有的 docker load -i 压缩文件名称

根据dockerfile构建镜像 docker build -f dockerfile文件目录 -t 构建的镜像名称:版本 .

docker compose 服务编排,编排容器的链接关系,启动参数等,然后可以一个命令按顺序启动所有编排好的容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值