docker使用
docker的安装和基础命令使用
安装环境
我自己使用的linux是centos7 64位的,可能不同的linux版本安装的方法不大相同吧。这些安装的步骤直接复制粘贴就好了,也不用咋记住吧!谷粒商城后面的知识点总结和自己踩的坑都会记录下来呢,可以关注一波。
1. 安装命令
# 1、yum 包更新到最新
yum update
# 2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3、 设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 4、 安装docker,出现输入的界面都按 y
yum install docker-ce docker-ce-cli containerd.io
# 5、 查看docker版本,验证是否验证成功
docker -v
这个我使用的时候也没出啥错
2. 卸载命令
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果有问题就先卸载一下在重新安装吧
3. 对docker进行配置
#配置淘宝镜像 在这个地方查看的命令https://cr.console.aliyun.com/cn-qingdao/instances/mirrors?accounttraceid=40a466fc0af94a0d96e841e0f6eadff3kbyt
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF
# 设置开机自启动
sudo systemctl enable docker
docker中的基本概念
-
架构
-
镜像
它相当于一个安装包的概念,你只有有镜像了才可以进行安装
-
容器
容器的话就是你安装过后的镜像,可以直接使用的软件呢
-
仓库
这个项目好像没有使用过这个东西,它是用来保存镜像的,后面也总结一下吧
-
-
docker命令
-
docker进程相关的命令,
有一次数据库忽然连不上了,搞了一大圈东西,弄好了,第二次发现重启了一下docker就好了- 启动docker服务:systemctl start docker
- 停止docker服务:systemctl stop docker
- 重启docker服务:systemctl restart docker
- 查看docker服务状态: systemctl status docker
- 设置开机启动docker服务:systemctl enable docker
-
docker镜像命令
-
查看镜像:docker images
-
搜索镜像:从网络中查找需要的镜像:docker search 镜像名称
-
拉取镜像:docker pull 镜像名称(后面接分号,可以直接找到所要下载的版本号) 例如docker pull mysql:5.7
-
删除镜像:docker rmi 镜像id # 删除指定本地镜像
docker rmi
docker images -q# 删除所有本地镜像
-
-
docker 容器命令
-
查看已经打开的容器:docker ps -a 查看所有容器包括已经关闭的 加q值显示id
docker ps显示正在运行的容器
-
创建并启动容器:docker run 参数
这里要对参数进行说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-v:是把宿主机的目录挂载到容器中
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
--name:为创建的容器命名。
-e:设置参数
-
进入容器: docker exec 参数
-
停止容器:docker stop 容器名称
-
启动容器:docker start 容器名称
-
删除容器:docker rm 容器名称
-
查看容器信息:docker inspect 容器名称
-
重启:docker restart 容器名称
-
设置开机启动:docker update 镜像名称--restart=always
这里面的容器名称也可以换成container id而且这个id值只复制一部分就好了,如果想要删除一个容器,不许停止容器后才可以进行删除,不然是删不掉的
-
-
-
常用软件的安装(后面用到其它的也会总结进来,直接复制粘贴就好了)
-
mysql
安装镜像
sudo docker pull mysql:5.7 # --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行 sudo docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7对mysql进行配置
vi /mydata/mysql/conf/my.conf [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve重启mysql
docker restart mysql -
redis
安装redis
mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf docker pull redis docker run -p 6379:6379 --name redis \ -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf对redis进行配置
#配置持久化 vim /mydata/redis/conf/redis.conf #插入下面内容 appendonly yes #重启redis docker restart redis -
对elasticsearch和kibana(把elasticsearch可视化类似于sqlyog)进行安装
拉去镜像和配置映射目录
docker pull elasticsearch:7.6.2 docker pull kibana:7.6.2 #设置映射目录 mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml #更改映射权限 chmod -R 777 /mydata/elasticsearch/安装elasticsearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.6.2 #设置开机启动 docker update elasticsearch --restart=always安装kibana
docker run --name kibana -e ELASTICSEARCH_HOSTS=自己虚拟机的ip:9200 -p 5601:5601 -d kibana:7.6.2 #设置开机启动 docker update kibana --restart=always -
Nginx
随便启动一个nginx实例,只是为了复制出配置
docker run -p80:80 --name nginx -d nginx:1.10将容器内的配置文件拷贝到/mydata/nginx/conf/ 下
mkdir -p /mydata/nginx/html mkdir -p /mydata/nginx/logs mkdir -p /mydata/nginx/conf docker container cp nginx:/etc/nginx/* /mydata/nginx/conf/ #由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中 mv /mydata/nginx/conf/nginx /mydata/nginx/conf/ rm -rf /mydata/nginx/conf/nginx终止原容器:
docker stop nginx #执行命令删除原容器 docker rm nginx创建新的Nginx,执行以下命令:
docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/conf/:/etc/nginx \ -d nginx:1.10 #设置开机启动 docker update nginx --restart=always
-
-
关于数据卷
前面一直使用的 -v命令其实是叫数据卷(因为docker删除后,在容器中的数据也随之销毁了,数据卷可以对配置进行保存,方便下次使用用来和宿主机进行数据的交换)
创建数据卷的方式 -v 宿主机目录:容器内目录,宿主机的目录可以不用提前创建,在执行命令后,自动进行创建!
-
概念:
- 宿主机的一个目录或文件
-
数据卷的作用
-
容器数据持久化
![]()
-
客户端和容器数据交换
-
容器间数据交换
-
多个容器挂载同一个数据卷
![]()
-
数据卷容器
![]()
-
-
-
数据卷容器
-
创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
举个例子 (把数据卷容器的图实现) 创建数据卷容器 docker run -it --name=c3 -v /volume centos:7 /bin/bash 启动容器c1 c2使用 --volumes-from设置数据卷 docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash -
通过简单方式实现数据卷配置
-
-
-
后面的一些概念这个项目也没用到,用到在来整理吧~




浙公网安备 33010602011771号