我所使用的环境是在VMware运行的centos7。网络使用NAT模式。
之前这台虚拟机配置过很多环境,解决了很多问题,可能有一些报错不会出现。
文章目录
1.步骤
1、检查内核版本,必须是3.10及以上
[root@localhost ~]# uname ‐r
3.10.0-1062.el7.x86_64
2、安装docker
[root@localhost ~]# yum install docker
输入y确认安装
3、启动docker
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker ‐v
Docker version 1.13.1, build 0be3e21/1.13.1
4、开机启动docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi‐user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
5.停止docker
[root@localhost ~]# systemctl stop docker
2.Docker常用命令&操作
首先docker默认的源为国外官方源,***慢,容易time out, 可改为国内源。
2.1换源
方法一(常用)
修改或添加
[root@localhost ~]# vi /etc/docker/daemon.json
插入文本
{
“registry-mirrors”: [“http://hub-mirror.c.163.com”]
}
重新启动docker服务 # systemctl restart docker.service
方法二
修改或新增 /etc/sysconfig/docker,在OPTIONS变量后追加参数 --registry-mirror=https://docker.mirrors.ustc.edu.cn
修改或新增
[root@localhost ~] # vi /etc/sysconfig/docker
OPTIONS=’–selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn’
重新启动docker服务 # systemctl restart docker.service
docker国内源列举说明 :
Docker 官方中国区 : https://registry.docker-cn.com
网易 : http://hub-mirror.c.163.com
中国科技大学 : https://docker.mirrors.ustc.edu.cn
阿里云 : https://pee6w651.mirror.aliyuncs.com
2.2镜像操作
操作 | 说明 | 命令 |
---|---|---|
检索 | 我们经常去docker hub上检索镜像的详细信息,如镜像的TAG。 | ocker search 关键字 eg:docker search redis |
拉取 | tag是可选的,tag表示标签,多为软件的版本,默认是latest 。 | docker pull 镜像名:tag |
列表 | 查看所有本地镜像。 | docker images |
删除 | 删除指定的本地镜像 | docker rmi image-id |
这里mysql为例:
[root@localhost ~]# docker search mysql
[root@localhost ~]# docker pull mysql 【如果加上:tag就是下载指定版本的镜像】
[root@localhost ~]# docker images
[root@localhost ~]# docker rmi ab2f358b8612 【删除指定id镜像】
2.3容器操作
软件镜像(Setup.exe安装程序)
|
v
运行镜像
|
v
产生一个容器(运行的程序)
操作 | 说明 | 命令 |
---|---|---|
运行 | –name:自定义容器名 &-d:后台运行& image-name:指定镜像模板 | docker run --name container-name -d image-name eg:docker run –name myredis –d redis |
列表 | 加上-a;可以查看所有容器 | docker ps(查看运行中的容器); |
停止 | 停止当前你运行的容器 | docker stop container-name/container-id |
启动 | 启动容器 | docker start container-name/container-id |
删除 | 删除指定容器 | docker rm container-id |
端口映射 | -p: 主机端口(映射到)容器内部的端口 | -p 6379:6379 eg:docker run -d -p 6379:6379 --name myredis docker.io/redis |
容器日志 | docker logs container-name/container-id | |
更多命令 | https://docs.docker.com/engine/reference/commandline/docker/ |
以tomcat为例
1.搜索镜像
[root@localhost ~]# docker search tomcat
2.拉取镜像
[root@localhost ~]# docker pull tomcat
3.根据镜像启动容器
[root@localhost ~]# docker run ‐‐name mytomcat ‐d tomcat:latest
解释 : docker run --name(自己给该容器起一个名称) myTomcat -d(后台运行) tomcat:(后面跟上tag,没有默认latest)
当生成一串id,说明容器创建完成。
4.查看运行中的容器
[root@localhost ~]# docker ps
此时还无法直接访问 ip:8080访问tomcat,需要添加映射
5.停止运行中的容器
docker stop 容器的id
[root@localhost ~]# docker stop ef02dd2ce2cb
6.查看所有的容器
[root@localhost ~]# docker ps ‐a
7.启动容器
docker start 容器id
[root@localhost ~]# docker start ef02dd2ce2cb
8.删除一个容器
docker rm 容器id
[root@localhost ~]# docker rm ef02dd2ce2cb
9.启动一个做了端口映射的tomcat
[root@localhost ~]# docker run ‐d ‐p 8888:8080 tomcat
解释 : docker run (–name xxx) -d -p(做端口映射) 8888(linux端口):8080(tomcat端口) tomcat
‐d:后台运行
‐p: 将主机的端口映射到容器的一个端口 【主机端口:容器内部的端口】
为了测试方便,可以关闭防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
10.查看容器的日志
docker logs container‐name/container‐id
[root@localhost ~]# docker logs e136b06c25e1
建议:可以自己在官网参考每一个镜像的文档。