Skip to content

hythzx/learn-docker

Repository files navigation

Docker课程内容

  • docker基本知识
  • docker的安装,配置
  • docker镜像
  • docker network配置
  • docker持久化存储
  • docker-compose 容器部署
  • docker registry配置,基础接口
  • docker编排工具docker swarm(Kubernetes)
  • 微服务概念
  • 部署ELK
  • 部署gitlab
  • Docker + DevOps实战

Docker导学

  1. 什么是Docker

  1. Docker能干什么

  1. Kubernetes

  1. 物理服务器

  1. 虚拟化技术

  1. docker

安装和使用Docker

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce

# Step 4: 配置镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://x5y5eu8z.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
# Step 5: 设置docker自启动并运行docker
systemctl enable docker
systemctl start docker

docker 基本命令

# 查看镜像列表
docker images

# 删除镜像
docker rmi

# 启动一个容器
docker run

# 停止一个容器
docker stop

# 运行一个被停止的容器
docker start

# 移除一个容器
docker rm

# 在运行的容器中执行命令
docker exec

# 查看容器运行日志
docker logs

# 查看容器的元数据
docker inspect

运行一个简单容器

docker run -d --name nginx -p 80:80 nginx

挂载卷

docker volume create nginx_content
docker run -d -v nginx_content:/usr/share/nginx/html -p 80:80 nginx

docker网络

  1. bridge
  2. host
  3. overlay

安装docker-compose

curl -L  https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

使用Docker-compose 部署一个简单的wordpress网站

  1. 在 /opt/app/wordpress 文件夹下新建docker-compose.yml 文件,内容如下:
version: '3'
services:
  wordpress:
    image: wordpress
    ports:
      - 80:80
    depends_on:
      - mysql
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_PASSWORD: root
    networks:
      - my-bridge
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wordpress
    volumes:
      - mysql-data:/var/lib/mysql
    networks:
      - my-bridge
volumes:
  mysql-data:
networks:
  my-bridge:
    driver: bridge
  1. 在目录下执行
docker-compose up -d
  1. 查看日志
docker-compose logs -f
  1. 重启容器
docker-compose restart or docker-compose restart wordpress
  1. 停止容器
docker-compose stop
  1. 删除容器
docker-compose rm

安装和配置 docker registry

docker run -d -p 5000:5000 -v /data/docker-registry:/var/lib/registry --restart=always --name registry registry

注意: 使用自己搭建的docker registry需要在docker daemo里添加insecure-registries配置

Docker swarm

  • 初始化swarm
docker swarm init

查看节点

docker node ls

swarm服务

查看服务列表

docker service ls

创建服务

docker service create --name nginx -p 80:80 nginx

查看服务运行节点

docker service ps nginx

伸缩服务

docker service scale nginx=2

删除服务

docker service rm nginx

创建busybox服务

docker service create --name client -d --network ELK_ms_net  busybox sh -c "while true; do sleep 3600; done"

ELK

ELK 的全称是 Elasticsearch、Logstash、kibana,是目前最流行的日志采集、转换、存储和查看工具。

部署ELK的compose编排文件

部署gitlab

sudo docker run --detach \
    --hostname gitlab-demo.nj-agile.com \
    --publish 80:80 \
    --name gitlab \
    --restart always \
    --volume /srv/gitlab/config:/etc/gitlab:Z \
    --volume /srv/gitlab/logs:/var/log/gitlab:Z \
    --volume /srv/gitlab/data:/var/opt/gitlab:Z \
    gitlab/gitlab-ce:latest

About

Docker入门

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published