docker容器基础操作(围绕项目部署操作)

本文详细介绍了Docker的原理、如何在CentOS7上安装Docker,包括卸载旧版本、配置阿里云镜像加速器,以及基本的镜像操作、数据卷使用和安装MySQL、Redis等数据库。
摘要由CSDN通过智能技术生成

docker是什么?能干嘛?

  • Docker 是一个开源平台,支持开发人员快速构建、部署、运行、更新和管理容器;
  • 容器使用沙盒机制(每一个沙箱可理解为是一个独立的主机,互不干扰),相互之间不会存在任何接口。 几乎没有性能开销,可以很容易的在机器和数据中心运行。

  一、Docker的安装

1.centos7安装Docker

如果之前安装旧版本的Docker,进行下面的操作进行卸载

1.1 卸载Docker

yum remove docker \
	docker-client \
	docker-client-latest \
	docker-common \
	docker-latest \
	docker-latest-logrotate \
	docker-logrotate \
	docker-selinux \
	docker-engine-selinux \
	docker-engine \
	docker-ce

1.2 安装docker

在 Linux 发行版中安装 yum-utilsdevice-mapper-persistent-data 和 lvm2 这三个软件包

yum install -y yum-utils \
	device-mapper-persistent-data \
	lvm2 --skip-broken

设置yum镜像源

# 设置阿里云镜像
yum-config-manager \
	--add-repo \
	https: //mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

#国内访问不到docker,这是由于国内访问不到docker官方镜像的缘故,可以通过aliyun的源来完成:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker社区版
sudo yum install docker-ce

启动、查看 docker 是否成功

# 启动docker
systemctl start docker

# 查看docker启动状态
systemctl status docker

# 查看docker版本
docker -v

配置镜像加速器([容器镜像服务 (aliyun.com)](https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?accounttraceid=a0f7c944d27d4c66b2b811edab3ca11eaneq))

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

根据自己的服务器选择下面的操作进行下一步

# ubuntu
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zaha1ngk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

#centos7
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zaha1ngk.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 的基本操作

#查看镜像
docker images

#删除镜像
docker rmi


#分享镜像

#方式一:

Docker Registry 镜像服务器

docker push 将镜像推送到服务

docker pull 从服务拉取镜像

#方式二:

#将docker save 保存为一个压缩包,

docker load 加载压缩包为镜像

#拉取镜像
docker pull nginx

#打包镜像
docker save -o nginx.tar nginx:latest

#删除镜像
docker rmi nginx:latest

#docker加载配置
docker load -i nginx.tar

#运行-> 暂停
docker pause

#暂停-> 运行
docker unpause

#运行-> 停止
docker stop

#停止->运行
docker start

#查看docker容器运行日志
docker logs

#查看所有运行的容器状态
docker ps

#删除指定容器
docker rm

# docker开机自启
systemctl enable docker.service
# 服务开机自启
docker update --restart=always 容器名

# docker run 运行并创建一个容器
# --name  容器名字
# -p 将宿主机端口与容器端口映射,左侧80端口是宿主机端口,冒号右侧容器内端口
# -d 后台运行容器
# nginx 镜像名称,例如基于nginx创建
docker run --name containerName -p 80:80 -d nginx

操作docker内部的文件修改

# 进入容器操作容器内部的命令
docker exec -it mynginx bash

# nginx静态文件存储位置: /usr/share/nginx/html

# 修改docker文件
sed -i 's#welcome to nginx#你好啊#g' index.html
sed -i 's#<head>#<head><meta charset="utf-8">#g' index.html

# 3 数据卷(Volumes)


# 数据卷操作
docker volume[COMMAND]

# create  创建一个volume
# inspect 显示一个或者多个列表
# ls 	  列出所有的volume卷
# prune   删除未使用的volume
# rm 	  删除一个或者多个指定的volume

#3.1 挂载数据卷

docker run \
	--name mn \
	-v html:/root/html \
	-p 8080:80 nginx
	
# 例如创建一个nginx容器将端口挂在到html数据卷中
docker run --name mn -p 80:80 -v html:/usr/share/nginx/html -d nginx

# docker内部的conf文件默认在以下文件内
cd /etc/nginx

使用docker安装mysql与redis

docker run -d --privileged=true --restart=always --name mq \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 \
-v /media/mydisk/app/mysql/config/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
-v /media/mydisk/app/mysql/data:/var/lib/mysql \
-d \
mysql

# 创建用户组
CREATE USER 'root123'@'%' IDENTIFIED WITH mysql_native_password BY 'root123456';
GRANT mygroup TO 'root123'@'%';

docker run -d --privileged=true --restart=always -p 6379:6379 -v /media/mydisk/app/redis/conf/redis.conf:/etc/redis/redis.conf -v /media/mydisk/app/redis/data:/data --name redis redis:latest redis-server /etc/redis/redis.conf --appendonly yes

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值