Linux上安装Docker并使用(含错误解决)

一、安装与删除

1. 检查linux内核版本号,docker需要大于3.10
uname -r
2. 安装docker
yum install docker
3. 安装后输入y确定安装
确定吗?[y/N]: y       
4. 运行docker
systemctl start docker
我遇到了Failed to start docker.service: Unit docker.service not found.错误

查询docker版本
docker -v
Docker version 20.10.7, build f0df350

运行错误解决方案

5. 设置开机自启动
systemctl enable docker
6. 停止docker
systemctl stop docker

二、镜像操作命令

1. 检索docker hub的镜像信息
docker search 关键字
如:docker search mysql

在这里插入图片描述

使用命令搜索和去docker hub搜索是一样的

2. 拉取镜像
docker pull 镜像名:tag

tag是可选的,多为镜像的版本,如果不指定,默认使用的latest
显示:Using default tag: latest
具体标签要查看dockerhub

docker pull mysql
docker pull mysqll:5.5

在这里插入图片描述

3. 查看本地所有镜像
docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mysql        latest    c0cdc95609f1   5 weeks ago   556MB
mysql        5.5       d404d78aa797   2 years ago   205MB

4. 删除指定(镜像id  上述IMAGE ID)的本地镜像
docker rmi image-id

三、容器操作

镜像 (安装程序)      运行镜像      容器(运行的程序)
1. 拉取镜像
docker pull 镜像名:tag

2 .运行镜像
docker run --name 自己给容器定义的名字 -d 指定容器(名字或者id):tag   
一般使用指定的容器id
--name:取容器名
-d:后台运行

docker run --name mytomcat -d tomcat:8.0

也可以直接
docker run -d [id|name]:tag
docker run -d tomcat

3. 查看正在运行的容器
docker ps

4. 停止指定容器
docker stop 容器名称或者容器id
5. 启动容器
docker start 容器名称或者id

[root@chime ~]# docker stop 215e1efa6017
215e1efa6017
[root@chime ~]# docker start 215e1efa6017
215e1efa6017

6. 查看所有容器,包括关闭的
docker ps -a

7. 删除指定容器
docker rm 容器id
运行容器后使用ip:port的方式访问tomcat,但是访问失败
因为虚拟机不能直接访问容器内部端口
8. 采用端口映射的方式启动容器
docker run -d -p 8888:8080 tomcat
将虚拟机8888端口映射到容器的8080端口

docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED              STATUS              PORTS                                       NAMES
f7d95c060ba4   tomcat    "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8888->8080/tcp, :::8888->8080/tcp   vigilant_shockley

            可以通过0.0.0.0访问8888端口,8888端口映射容器的8080端口
然后就可以通过ip:port的方式访问服务器了
显示404是正常的,说明没有index,因为404是服务器给的,你服务器都没,怎么可能404

在这里插入图片描述

同时要注意防火墙的原因导致无法访问

查看容器日志
dcoker logs id或者name

修改容器自启动
docker update elasticsearch --restart=always

四、防火墙问题

防火墙会影响访问,学习过程,没有特殊需要最好关掉
centos7版本以上最好打开防火墙,否则可能Can’t connect to MySQL server on

说明链接

查看防火墙状态
service firewalld status
关闭防火墙
service firewalld stop 

也可以针对指定端口进行打开
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

查看指定端口(7000)是否打开 
firewall-cmd --query-port=7000/tcp

五、安装Mysql镜像,并建立连接

1. 安装mysql5.5镜像
docker pull mysql:5.5
2. 运行镜像
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.5
-p:端口映射,虚拟机端口映射容器端口
-e MYSQL_ROOT_PASSWORD:设置mysql的root密码,docker hub 的mysql连接说明里有,不配置会连接失败

3. 连接mysql服务
一般可视化软件都是通过
mysql服务ip
端口号
用户
密码
四个属性连接
照着输就行了

六、发现连接不到服务

如果电脑挂了vpn的话,ip会被代理出去,无法获取连接,很烦

解决方案

七、其他

部署ES

前置准备

mkdir /mydata/elasticsearch/config
echo "http.host: 0.0.0.0">> /mydata/elasticsearch/config/elasticsearch.yml
#host:与ip之间必须要有空格,否则启动会报expecting token of type [START_OBJECT] but found [VALUE_STRING] 异常

mkdir /mydata/elasticsearch/data
ll
查看目录下所有文件的权限
chmod -R 777 /mydata/elasticsearch 
递归修改目录下所有权限为777 

启动容器

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \ #发现类型为单节点
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ #默认内存64m 最大内存128m
-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.4.2

# -v 挂载到本机目录 如plugins 只需在虚拟机目录里添加插件 然后重启容器就行了 不用进容器添加

查看日志

docker logs id或者name

然后通过ip:9200访问成功就表示启动成功
注意要开放端口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值