推荐个人Docker文章,讲的非常详细
【玩转Docker容器 1】Dockerd的详解及安装1.如果配置镜像加速器,Docker安装环境非常的快
2.mysql、tomcat、nginx、jdk、redis、MQ、Git Lab、Node等等等等都是秒安装级别
3.详细的配置就不行了,这些就需要自己去弄,但是可以配置好了自己打包成镜像,下次接着使用
在国内,阿里云、163都提供了docker仓库,但是阿里云还提供了加速功能。所以,我们选用阿里云的加速。163的仓库地址:http://c.163.com/hub#/m/home,使用阿里云,需要到阿里云进行注册,获取到自己专属的加速地址。
不配置镜像加速器的话,网络非常慢,最快只有100-200k的速度
配置阿里云的加速器,速度可达几十M以上,所以有什么理由不配置
如果没有账号就先注册个账号,登录成功后右上角找到控制台,
控制台页面找到左上角的产品与服务–>搜索容器–>找到下面的容器服务
有可能会出现,在下图中选择”前往RAM进行授权”,之后在弹出界面中往下拉点击”同意授权”。
在上图中指出了使用加载器的方法。我们把下面的代码全选到Xshell工具中进行回车。
注意,这里分为四条命令,
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://jrvh6o0l.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
docker search java
docker search 命令搜索存放在 Docker Hub(这是docker官方提供的存放所有docker镜像软件的地方,类似maven的中央仓库)中的镜像。执行该命令后, Docker就会在Docker Hub中搜索含有 java这个关键词的镜像仓库。
linux中查询出来的其实就是和Docker Hub官网去查询显示出来的一样,
Docker Hub 官网:https://hub.docker.com/
docker pull java:8
此命令会从Docker Registry上下载镜像,docker pull java:8是指定了版本号下载jdk,如果不加:8的话,默认就是下载最新版
此时就可以列出容器 查看jdk8镜像是否下载成功了
docker images
docker run -d -it --name java java
#其中,–name后面的“java”是为容器指定了一个别名,而最后的那个“java”指的是下载镜像的名称。
这就是启动成功了,输入docker ps看看
(docker ps,查看当前运行容器)
(docker ps -a,查看所有容器,包括不在运行的容器)
docker ps
发现我们有个名称为java的容器正在运行,到这就已经完成了。
成功
docker search mysql
docker pull mysql:5.7
这里的启动mysql,还映射了Linux与Docker容器的端口号,并且指定mysql root用户登录密码,
启动mysql
docker run -p 3303:3306 --name mysql3303 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
为什么要映射端口号呢?
因为Docker容器和Linux系统的端口一个在内一个在外,所以要映射到外部Linux系统的端口上,如果不映射就只能在容器中使用
-p 3303:3306 第一个端口号为Linux的端口号,第二个端口号为Docker容器内部的端口号
查看一下Docker容器的状态,发现mysql容器已经打开成功了。
1.先找到Linux的lp地址,如果知道IP地址就跳过
如果是虚拟机先关闭防火墙
systemctl stop firewalld
输入ifconfig查看IP地址
ifconfig
如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放3303端口号
具体步骤访问:阿里云服务器配置外网访问,打开3303端口
话不多少,安装Nginx一个命令解决
docker run -d -p 81:80 nginx
如果要指定版本的话输入:docker run -d -p 81:80 nginx:版本号 即可
为什么这一个命令就可以实现Nginx下载至安装结束呢?
这条命令不是启动Nginx的吗,其实是这样的,启动Nginx,会自动去镜像文件找,结果找不到,就去联网Docker Hub里面下载,下载好了就自动的来部署Nginx,和Maven有点像,本地找不到jar包就去联网下载到本地后在来使用。
为什么要映射端口号呢?
因为Docker容器和Linux系统的端口一个在内一个在外,所以要映射到外部Linux系统的端口上,如果不映射就只能在容器中使用
-p 81:80是映射配置端口号的意思,意思是外部Linux映射到Docker容器的端口
第一个端口号为Linux的端口号,第二个端口号为Docker容器内部的端口号
完成,访问看看
先找到Linux的lp地址,如果知道IP地址就跳过
如果是虚拟机先关闭防火墙
systemctl stop firewalld
输入ifconfig查看IP地址
ifconfig
如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放81端口号
具体步骤访问:阿里云服务器配置外网访问,打开81端口
访问
成功!
一个命令解决
docker run -d -p 8080:8080 --name mytomcat tomcat:9
如果要指定版本的话输入:docker run -d -p 8080 :8080 --name mytomcat tomcat:版本号 即可
为什么这一个命令就可以实现Tomcat下载至安装结束呢?
这条命令不是启动Tomcat的吗,其实是这样的,启动Tomcat,会自动去镜像文件找,结果找不到,就去联网Docker Hub里面下载,下载好了就自动的来部署Tomcat,和Maven有点像,本地找不到jar包就去联网下载到本地后在来使用。
为什么要映射端口号呢?
因为Docker容器和Linux系统的端口一个在内一个在外,所以要映射到外部Linux系统的端口上,如果不映射就只能在容器中使用
-p 8081:8080 是映射配置端口号的意思,意思是外部Linux映射到Docker容器的端口
第一个端口号为Linux的端口号,第二个端口号为Docker容器内部的端口号
完成,访问看看
先找到Linux的lp地址,如果知道IP地址就跳过
如果是虚拟机先关闭防火墙
systemctl stop firewalld
输入ifconfig查看IP地址
ifconfig
如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放8080端口号
具体步骤访问:阿里云服务器配置外网访问,打开8080端口
访问
成功!
一个命令解决
docker run -d -p 16379:6379 --name redis redis:3
如果要指定版本的话输入:docker run -d -p 16379:6379 --name redis redis:版本号 即可
为什么这一个命令就可以实现Redis下载至安装结束呢?
这条命令不是启动Redis的吗,其实是这样的,启动Redis,会自动去镜像文件找,结果找不到,就去联网Docker Hub里面下载,下载好了就自动的来部署Redis,和Maven有点像,本地找不到jar包就去联网下载到本地后在来使用。
为什么要映射端口号呢?
因为Docker容器和Linux系统的端口一个在内一个在外,所以要映射到外部Linux系统的端口上,如果不映射就只能在容器中使用
-p 16379:6379 是映射配置端口号的意思,意思是外部Linux映射到Docker容器的端口
第一个端口号为Linux的端口号,第二个端口号为Docker容器内部的端口号
完成,访问看看
先找到Linux的lp地址,如果知道IP地址就跳过
如果是虚拟机先关闭防火墙
systemctl stop firewalld
输入ifconfig查看IP地址
ifconfig
如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放16379端口号
具体步骤访问:阿里云服务器配置外网访问,打开16379端口
连接
先查看有哪些容器正在运行
docker ps
根据容器id查看运行日志
例如我查看Tomcat的日志
输入:docker logs 容器id
点击进入