一、安装与删除
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访问成功就表示启动成功
注意要开放端口