安装docker
首先把docker的安装包上传到linux上,在这里我用的是Winscp这个软件将包从windows传到linux上。
接下来,利用本地yum方式安装docker
执行yum install 【本地包】进行安装
安装完成后,该docker服务并没有启动还需要启动和配置docker服务
systemctl start docker 启动docker
systemctl status docker 查看docker启动状态
绿色部分active就代表已经启动
想关闭该服务就systemctl stop docker
配置docker时要记得重启docker服务,使其生效,用docker info 查看是否配置成功
systemctl restart docker来重启
由于docker镜像官网是国外网站,所以难免会网速不是特别好,所以配置镜像加速器
在阿里云那里找到镜像加速器服务并按下例子进行配置
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://w2plr83n.mirror.aliyuncs.com"]
}
刷新守护进程:
systemctl daemon-reload
重启docker:
systemctl restart docker
并docker info进行查看是否成功
docker search [某软件]自动搜索,列名从左到右依次是
名称,功能,点赞数,是否为官方镜像 最后一个不知道
选取点赞数高和官方的镜像即可
docker pull[软件名]
不加后缀的话,默认下载官方该软件的镜像。
我这里是以前拉过的一个镜像我保存到Windows上了
拉下来的镜像通过该命令保存
docker save -o tomcat3-22.rar tomcat:8.5.42-jdk8-adoptopenjdk-openj9
docker save -o 【保存名称.保存方式】 【保存的镜像】
我还是通过开头的软件将我以前保存的镜像传上去的,我保存的是mysql的8.0版本
通过docker load -i mysql_80.tar将该包变成本地镜像
docker load -i [包名]
docker images查看本地镜像
这时就会有一个mysql latest包
删除镜像的方式
docker rmi -f openjdk:latest
docker rmi -f 040bdb29ab37
docker rmi -f $(docker images)
创建Linux操作系统容器(理论上可以套娃,不过我还没试过):
docker run centos:centos7 /bin/echo 'Hello World' 零时容器
docker run -it --name=mycentos centos:centos7 /bin/bash
docker run -d -p 91:80 nginx
访问: http://192.168.188.135:91/
4.2 列举正在运行的容器:
docker ps
列举所有的容器(包括停止的)
docker ps -a
4.3 停止、启动、重启容器:
docker stop 容器的id
docker start 容器的id
docker restart 容器的id
4.4 进入容器:
docker exec -it 5c0447c5d6ed /bin/bash
4.5 退出容器:
exit
4.6 删除容器:
docker rm -f 容器的id
docker rm -f $(docker ps -a -q)
4.7 过滤输出容器的ip地址:
docker inspect --format='{{.NetworkSettings.IPAddress}}' jdk1(容器的名称)
创建mysql容器
docker run -di --name=m1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=docker001 mysql:5.7
docker run -di --name=【自定义名称】 -p 3307:3306(系统端口:容器端口) -e MYSQL_ROOT_PASSWORD=123456(密码) -e MYSQL_DATABASE=docker001(创建一个新的数据库) mysql:5.7(镜像:版本号)如果本地只有一个mysql镜像版本号也可以不写
测试
因为之前在Linux系统上装了一个MySQL,所以容器上的MySQL在Linux上端口号得变成3307,所以还需要开放端口
firewall-cmd --add-port=3307/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
我在那个Windows上的navicat上测试的,这个数据库服务在模拟器Linux上docker容器安装
已经成功进入该数据库,