centos7 docker安装及docker常用命令使用

前置条件
  • yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 设置阿里云的docker源
  • yum makecache fast 设置最快的源
  • yum install -y docker-ce 安装docker
  • service docker start 启动docker
  • docker pull hello-world 拉取名为hello-world的docker镜像
  • docker run hello-world 运行镜像
阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://vw8b6y27.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
宿主机与容器端口映射
  • docker run -d -p 8000:8080 tomcat 后台运行容器
  • docker ps 列出当前正在映射的容器以及相关信息
  • docker rm (-f) 容器id 移除(非运行状态下的)容器 -f 强制移除
  • docker stop 容器id 停止容器
  • docker rmi (-f) 镜像名:tag 删除镜像
在容器中执行命令
  • docker exec -it 容器id /bin/bash
    在这里插入图片描述
容器启动tomcat镜像访问报404问题

通过docker exec -it 容器id /bin/bash进入容器中,看到有webapps跟webapps-dist目录,然后查看webapps目录,发现竟然是空的,而webapps-dist是非空的,把webapps文件夹删除,将webapps-dist重命名webapps,然后再访问docker容器即可访问到

构建自己的docker镜像
  • 创建目录 mkdir -p /usr/image
  • 在目录下 mkdir first-dockerfile,
  • 在first-dockerfile目录下创建docker-web目录及文件Dockerfile,编辑Dockerfile如下
# 设置基准镜像
FROM tomcat:latest
# 镜像的拥有者
MAINTAINER jack.com
# 设置切换工作目录路径 cd /usr/local/tomcat/webapps
WORKDIR /usr/local/tomcat/webapps
# 将docker-web中的所有内容复制到容器的工作目录下的docker-web目录
ADD docker-web ./docker-web

  • 进入docker-web目录,新建index.html,编辑index.html文件内容
<h1>自定义docker file<h1>
  • 回到first-dockerfile目录,通过 docker build -t jack.com/mywebapp:1.0 .构建docker-file,如下图所示
    在这里插入图片描述
  • 运行docker镜像
    docker run -d -p 8001:8080 jack.com/mywebapp:1.0
  • 测试自定docker 如下图(乱码由于编码问题,此处不关心)

在这里插入图片描述

FROM -基于基准镜像
  • FROM centos #制作基准镜像(基于centos:latest)
  • FROM scratch #不依赖任何基准镜像base image
  • FROM tomcat:9.0.22-jdk8-openjdk
  • 尽量使用官方提供的Base Image
  • MAINTAINER jack.com(dockerfile的维护机构或个人)
  • LABEL version = “1.0”(维护的其他信息)
  • LABEL description = “杰克个人工作室”
  • WORKDIR /usr/local/newdir #自动创建
ADD&COPY
  • ADD hello / 复制到容器内部的根路径下
  • ADD test.tar.gz / 复制到根目录并解压
  • ADD 除了复制,还具备添加远程文件的功能
设置环境常量
  • ENV JAVA_HOME /usr/local/openjdk8
  • RUN ${JAVA_HOME}/bin/java -jar test.jar
  • 尽量使用环境常量,可提高程序维护性
docker容器单项访问

图docker容器单项访问

  • docker run -d --name web tomcat 创建名称为web的tomcat容器
  • docker run -d --name database -it centos /bin/bash 创建名为database的centos容器
  • docker inspect 容器id
  • docker run -d --name web --link database tomcat 创建容器并添加链接
  • docker exec -it 容器id /bin/bash
  • ping 172.17.0.3/ping database
Bridge网桥双向通信
  • docker network ls 查看docker容器底层网络服务明细
  • docker network create -d bridge my-bridge 创建网桥
  • docker network connect my-bridge web 将web容器绑定my-bridge网桥
容器间共享数据
  • docker run --name 容器名 -v 宿主机路径:容器内挂载路径 镜像名
    实例:docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat
  • docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true 创建共享容器
  • docker run --volumes-from webpage --name t1 -d tomcat 共享容器挂载点
Docker-compose安装
  • sudo curl -L “https://github.com/docker/compose/releases/download/1.25.0/docker-compose- ( u n a m e − s ) − (uname -s)- (unames)(uname -m)” -o /usr/local/bin/docker-compose 获取并自动安装
  • chmod +x /usr/local/bin/docker-compose 授权
  • docker-compose -version 查看版本
通过docker-compose创建开源博客worldpress
  1. mkdir -p /usr/wordpress 创建新目录并切换
  2. vim docker-compose.yml
version: '3.3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}
  1. docker-compose up -d 安装博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值