Docker
编辑
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。[摘自百度百科]
一个完整的Docker有以下几个部分组成:
安装要求: 必须linux内核在3.10以上
可以用一下名称查看
uname -r
用后面这个
更新yum最新版本
yum -y update
如果有旧版本卸载
yum remove docker docker-common docker-selinux docker-engine
安装需要的软件包,yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
# 添加阿里地址
sudo yum-config-manager \
> --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates |sort -r
安装docker -默认是最新版本
sudo yum install docker-ce
如果是root 用户就不需要sudo ,安装过程中需要一次 输入y.(yes)
启动并加入开机启动
systemctl start docker
systemctl enable docker
可以查看进程
ps -ef |grep docker
验证安装是否成功(client和service两部分表示docker 安装和启动都成功)
docker version
卸载docker
yum -y remove docker-engine
注意需要配置镜像加速器 (因为内置配置的是国外的镜像,时间可能超时)
docker search java
我们可以借助阿里云的镜像加速器,登录阿里云(https://cr.console.aliyun.com/#/accelerator)
可以看到镜像加速地址如下图:
使用命令
cd /etc/docker
查看有没有daemon.json。这是docker默认的配置文件。
如果没有则新建,如果有,则修改。
vim /etc/docker/deamon.json
{
"registry-mirrors":["http://m9r2r2uj.mirror.aliyuncs.com"]
}
保存退出。
重启docker服务。
sudo service docker start
sudo service docker stop
sudo service docker restart
如果报Redirecting to /bin/systemctl stop docker.service
启动docker:systemctl start docker
停止docker:systemctl stop docker
重启docker:systemctl restart docker
查看docker状态:systemctl status docker
开机启动:systemctl enable docker
docker的常用命令
- 搜索镜像
可使用docker search命令搜索存放在Docker Hub中的镜像,执行该命令后,Docker就会在Docker Hub 搜索。docker search java
列表:
1.-name
2.- -
下载镜像
docker pull redis # docker pull tomcat
-
运行镜像
#方式1:解释一下,-d表示后台运行,-p端口映射,前面的8088是外围访问端口(也就是本机ip对外开放的端口),后面8080是docker容器内部的端口 docker run -d -p 8088:8080 tomcat #方式2:加--name tomcat的意思,表示为此容器启一个别名叫tomcat,以后再也不用操作容器id进行关闭、进容器目录什么的,直接把容器ID换成tomcat别名 加上--restart=always 表示此容器开机启动,只要docker也设置了开机自启,docker不死 docker run -d -p 8088:8080 --name tomcat --restart=always tomcat 目前使用方式1,最简单的, 方式1的 -p : docker run -d -P tomcat ,这种是随机分配端口。 docker run --help 查看命令
-
查看 正在运行容器:
docker ps
1.7 docker inspect -f '{{.Id}}' web
-
进入docker里面的tomcat容器,需要容器ID,所以上面要查看正在运行的容器tomcat
docker exec -it 9fccf0236619 /bin/bash
(进了tomcat容器,肯定要退出啊,退出docker中的tomcat容器命令:exit)
-
查看镜像
docker images
-
第一个docker项目
docker pull hello-world docker run hello-world
-
拉去nginx镜像
docker pull nginx #拉去镜像 docker run -d -p 8080:80 nginx #运行容器 netstat -na|grep 8080 #查询8080端口是否开启 查询网络组
访问ip:8080就可以看到
-
要想通知正在运行的容器,怎么停
docker ps # 查询正在运行的容器
docker stop 9 # 停止该容器 CONTAINER ID 这里因为是只有一个容器,写9就可以
简化
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install docker-ce sudo systemctl start docker sudo systemctl enable docker