SpringBoot(五)docker

docker常用命令大全:

该命令转自:https://blog.csdn.net/liqz666/article/details/82180581

ip addr/ip link/ ifconfig:查看宿主机里ip地址(宿主机表示是虚拟机)

systemctl start docker/service start docker:启动docker服务

systemctl stop docker:关闭docker服务

service iptables start:启动防火墙

service iptables restart:重启防火墙

service iptables stop:关闭防火墙

docker run:启动container

docker seach xxxx(镜像名称):检索镜像

docker pull xxx(镜像名称):拉取镜像

docker images:列出镜像

docker  --version:查看docker的版本信息

[root@localhost  ~]:家目录

[root@localhost  /]:根目录

docker exec Container Id:进入容器

docker exec -it NAMES(自定义名称) /bin/bash:进入--name命名的容器

docker exec NAMES(容器的自定义名称)-it bash:进入容器里进行操作

docker attach Container Id:进入到容器的终端

docker inspect IMAGE ID:显示容器或镜像的元数据

[root@(container id)]:比如[root@24527d42d3eb]表示已进入docker里的一个CONTAINER ID的容器内部

[root@24527d42d3eb]:exit(从容器里退出)。

docker ps:查看docker里运行的容器(status为Up....表示运行中)

docker ps -a:查看docker里已停止或正在运行的容器(status为Exit)

docker start CONTAINER ID   :如果容器的状态为Exit,用它来启动容器

docker stop CONTAINER ID   :停止正在运行的容器,删除一个容器必须先要停止

docker restart :当部署web项目的war文件,到tomcat里的webapps里面了,重启一下docker服务,就自动解压了war文件

docker rm CONTAINER ID :删除容器

docker rm $(docker ps -a -q):删除所有已停止的容器;

docekr rmi IMAGE ID:删除镜像

rm -rf xxxx:强制删除某个war.文件或目录、文件

docker cp /xxx.war CONTAINER ID   :/usr/local/tomcat/webapps:从/根目录复制一个打包后的Java web war文件 到tomcat容器里的webapps工作目录里

docker exec CONTAINER ID   ls /usr/local/tomcat:默认的 安装tomcat镜像的webapps目录

docker run -name xxx -p  (自定义端口号,用来访问的):(容器的端口号:比如tomcat的8080,mysql的3306) -d docker.io/tomcat(镜像名称):表示在docker里运行一个tomcat容器,如果没有镜像,自动pull一个tomcat的镜像

--name 为容器取一个名字

-p 容器要映射的端口号

-d:后台运行

-t:进入终端

-i:获得一个交互式的连接,通过获取container的输入

/bin/bash:在container中启动一个bash shell

举例:docker run --name tomcat -p 8081:8080 -d tomcat
 

1、安装docker

1.1、首先安装好Oracle提供的小巧的虚拟机:Virtual Box;

1.2、然后安装好CentOS7,然后启动,登录,通过命令:ip addr 查看虚拟机的IP;

如果看不到IP,请参照这篇: https://blog.csdn.net/zengdongwen/article/details/105084036

1.3、使用Linux的客户端连接工具(这里用的是XShell),连接虚拟机;

执行命令:uname -r 查看内核版本,必须要3.10及以上;如果低于这个版本,要执行:yum update 进行更新操作

执行命令:yum install docker :在线安装docker

到了这里说明docker安装成功了。

1.4、启动docker,执行命令:systemctl start docker

[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code. 
See "systemctl status docker.service" and "journalctl -xe" for details.

如果出现这种情况,说明启动报错了,

journalctl -xe 执行这个命令,查看错误详情:

这是由于docker不支持图像内核驱动,SELinux不支持这个内核上的OrthALA2图形驱动程序。

解决办法:修改docker配置文件:vi  /etc/sysconfig/docker

把OPTIONS一行改为:OPTIONS='--selinux-enabled=false --log-driver=journald --signature-verification=false'

按下“Esc”,输入“:”加“wq”保存退出vi编辑模式;

再执行命令:systemctl start docker 就可以启动成功了。

1.5、查看docker 版本

docker -v

docker ps(docker ps -a)

docker images

如果这些命令都能执行成功,证明之前安装的docker没有任何问题。

1.6、修改镜像仓库地址

直接从docker hub拉取镜像的速度很慢,所以我们把它的镜像地址改成阿里云的。

执行命令:vi /etc/docker/daemon.json   如果没有该文件,可以自己手动建,加上下面的内容:

{
"registry-mirrors": ["https://mj9kvemk.mirror.aliyuncs.com"]
}

 

2、docker安装tomcat

2.1 执行命令搜索tomcat镜像

docker search tomcat

其实这样子没多大意思,想拉取哪个镜像,还是要去官方的镜像仓库找对应的tags:docker hub,百度搜这个就能进入官网,官网地址:https://hub.docker.com/  ,可以直接搜索tomcat

2.2 拉取tomcat镜像

我这里执行的是:docker pull tomcat:jdk8-adoptopenjdk-hotspot

接下来就是慢慢的等待。

看到这样的情况就是镜像拉取成功了。 

2.3 查看镜像和根据镜像启动容器:

docker images:查看所有的镜像

dokcer run -d -p 8888:8080 --name mytomcat afc0ee76aa56:以端口映射的方式启动容器;这样就可以通过访问 10.254.14.55:8888来访问到tomcat的首页。 

2.4 查看启动的容器和所有的容器

docker ps:查看所有启动了的容器

docker ps -a:查看所有的容器,包括关闭了的容器;

我这里是一样的,因为我这里就一个容器。

2.5 查看虚拟机防火墙状态

 service firewalld status

[root@localhost ~]# service firewalld status
Redirecting to /bin/systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

现在说明防火墙是关闭的,如果是开启的,需要关闭(service firewalld stop),在我们的主机浏览器才能访问到tomcat的首页:

2.6 访问

浏览器访问:http://10.254.14.55:8888,却发现了404错误:

怎么会这样呢?经过查询资料,发现别人也遇到过同样的情况,一般的话首页是在tomcat的webapps下面的ROOT项目中的,但是我们这里的tomcat下面存在一个webapps和webapps.dist目录,而且ROOT项目是存在与webapps.dist下面,如图:

执行命令 :docker exec -it 运行的tomcat容器name /bin/bash,查看tomcat的目录结构:

docker exec -it mytomcat /bin/bash :(上面我运行tomcat的时候,使用--name指定了名称是 mytomcat)

2.7 解决浏览器访问首页报404的问题

从2.6 看到,我们需要把webapps.dist下面的内容都移动到webapps下面,需要执行如下命令:

mv webapps webapps2:把webapps命名为webapps2

mv webapps.dist webapps:把webapps.dist命名为webapps

root@27610c8763d7:/usr/local/tomcat# mv webapps webapps2
root@27610c8763d7:/usr/local/tomcat# mv webapps.dist/ webapps

此时就可以在webapps下面看到了:

root@27610c8763d7:/usr/local/tomcat# cd webapps
root@27610c8763d7:/usr/local/tomcat/webapps# ls
docs  examples  host-manager  manager  ROOT

然后使用  exit  命令退出容器

执行命令:docker restart 容器ID :重新启动容器

浏览器再次访问 http://10.254.14.55:8888 ,终于成功:

3、docker按照mysql

3.1 拉取镜像

命令:docker pull mysql:5.6

[root@localhost ~]# docker pull mysql:5.6
Trying to pull repository docker.io/library/mysql ... 
5.6: Pulling from docker.io/library/mysql
6d28e14ab8c8: Pull complete 
dda15103a86a: Pull complete 
55971d75ab8c: Pull complete 
f1d4ea32020b: Pull complete 
61420072af91: Pull complete 
30862a48418b: Pull complete 
c6c2ee3a9a57: Pull complete 
0f4efadb31df: Pull complete 
dd931017b211: Pull complete 
488a86083079: Pull complete 
921d4bdabca2: Pull complete 
Digest: sha256:a72a05bcf3914c902070765a506b1c8c17c06400258e7b574965763099dee9e1

3.2 查看镜像

命令:docker images

[root@localhost ~]# docker images
REPOSITORY          TAG                         IMAGE ID            CREATED             SIZE
docker.io/tomcat    jdk8-adoptopenjdk-hotspot   afc0ee76aa56        4 days ago          324 MB
docker.io/mysql     5.6                         c8078e8ab06d        2 weeks ago         303 MB

这时就能看到有两个镜像了,一个mysql和一个tomcat的。

3.3 运行镜像

注意:启动mysql的时候,一定要指定ROOT用户的密码,同时也要做好端口映射;

命令:docker run -d -p 3306:3306 --name mysql5.6 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

[root@localhost ~]# docker run -d -p 3306:3306 --name mysql5.6 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6
143077a6c5cd7c5f3c7b63dc3ca8687a8ea8dacaab0b094cb2e39fcef8377804

命令说明:

docker run -d :-d表示后台运行;

-p 3306:3306:表示把主机的3306端口映射到mysql容器的3306端口;

--name mysql5.6:为容器指定名称;不指定的话会随机生成一个名字;

-e MYSQL_ROOT_PASSWORD=123456:为root用户指定密码,必须要指定,否则无法连接;

mysql:5.6:指定启动的镜像的名称和tags,name:tags,也可以用镜像ID:IMAGE ID

3.4 使用SQLyog远程连接

由此可见,使用docker按照一个mysql是多么的简单啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值