我所使用的环境是在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

建议:可以自己在官网参考每一个镜像的文档。