Docker的特性
- 更高效的利用系统资源。
- 更快速的启动时间。
- 一致的环境运行。
- 持续交付和部署。
- 更轻松的迁移。
- 更轻松的维护和扩展。
- 敏捷开发。
Centos7安装Docker
- 安装依赖的工具
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
- 更新yum缓存
sudo yum makecache fast
- 安装docker-ce
sudo yum -y install docker-ce
- 启动docker服务
sudo systemctl start docker
- 获取hello-world项目
docker pull hello-world
- 运行hello-world
[root@runoob ~]# docker run hello-world
docker 常用的命令
dockre pull redis:3.2
-
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
-
- 常用的Options有以下几个:
-
- -d:后台运行容器,返回容器的ID
-
- -it:显示运行信息
-
- –name:为容器指定一个名称
-
- -p:指定端口映射,如 -p 80:8080,就是把docker的8080端口映射到主机的80端口
-
- 例如:
- 例如:
docker run -d --name mytomcat -p 80:8080 tomcat
-
-
docker start|stop|restart [name]
-
docker kill [name]
-
docker rm -f [container] : 删除一个容器
-
docker exec [Options] [container]
-
- 以下为常用的option参数:
-
- -d:后台运行
-
- -t:分配一个伪终端
docker logs -f [实例id]:查看日志
docker inspect 容器ID:查看到容器的详细信息。
Dockerfile
关键字含义
Dockerfile配置样例
# FROM指定JDK镜像名称
FROM jdk-8u141
# 作者
MAINTAINER HUO
# 挂载主机的/tmp目录
VOLUME /tmp
# 复制当前的文件到tmp,注意后面的/app.jar一定要和ENTRYPOINT中执行的/app是一样的,少个斜线都不行
ADD *.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
#暴露接口
EXPOSE 8761
#获取文件名?也不知道干嘛的
ARG JAR_FILE
ADD ${JAR_FILE} /eureka.jar
Docker开启远程登录
- 编辑/lib/systemd/system/docker.service文件
- 注释掉第二行,增加第一行。
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
#ExecStart=/usr/bin/dockerd -H fd://
- 重启服务
sudo systemctl daemon-reload
sudo service docker restart
- 浏览器输入 IP地址:2375/images/json就能查看宿主机的所有镜像:
Docker中使用Redis
docker exec -it redis redis-cli
启动docker
docker run -p 6379:6379 --name redis -v /usr/huojiawei/redis/data:/data -v /usr/huojiawei/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
持久化配置
appendonly yes
Docker镜像自动启动
docker update redis --restart=always