常用Dokcer的命令

9/1/2020 Docker

自用的Dokcer容器

# Docker的基本操作

Docker也是目前很火的技术,当我在学习期间,因为学的东西比较多,部署环境很是麻烦,这时候就想把需要的环境搭建在Docker上,而且Docker搭建很是轻松,比如你安装Centos时候只需要几行命令便可以拉取安装,比起传统虚拟机安装方便快速很多,而且可以克隆部署多个。

# Docker的安装

  • Ubuntu
  • curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • Debian
  • curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • Centos
  • curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

# Docker加速镜像

  1. 编辑 vim /etc/docker/daemon.json
  2. 修改 {"registry-mirrors":["https://reg-mirror.qiniu.com/"]} 推荐修改为https://hub-mirror.c.163.com/
  3. 重启 sudo systemctl daemon-reload sudo systemctl restart docker

# 安装Ubuntu系统

# 查看镜像

进入Docker hub官方镜像仓库 docker hub (opens new window)

# 拉取镜像

docker pull ubuntu

# 查看已经下载的镜像

docker images

# 查看正在运行的镜像

docker ps

# 运行一个容器

docker run -itd --name ubuntu ubuntu

# 进入容器

docker exec -it ubuntu /bin/bash

# 将容器打包成镜像

docker container commit 容器名 镜像名

# 标记tag

docker tag 镜像名 koyangyang/镜像名:tag

# 推送镜像至docker hub

docker push koyangyang/镜像名:tag

# 安装FAST OS DOCKER

# 安装FAST OS DOCKER

docker run --restart always -p 8081:8081 -d -v /var/run/docker.sock:/var/run/docker.sock wangbinxingkong/fast

# 安装code-server

# 创建挂在目录

CODE=/home/codeserver
mkdir $CODE && cd $CODE

# 新建配置文件

输入nano $CODE/config.yaml填入以下内容

bind-addr: 127.0.0.1:8080
auth: password
password: 123456
cert: false

# 启动服务

docker run -d -u root \
-p 1024:8080 \
--name code-server \
-v $CODE/config.yaml:/root/.config/code-server/config.yaml \
-v $CODE:/home/code \
codercom/code-server

# Docker安装portainer可视化界面

# 搜索一下portainer

docker search portainer 看哪个镜像star多就优先选择

# 拉取镜像

docker pull portainer/portainer

# 运行

docker run -ti -d --name portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock  portainer/portainer
  • --name 定义容器名
  • -p 9000:9000 定义9000端口

# 设置密码

打开浏览器输入http://127.0.0.1:9000 登陆后就可以通过图形界面进行Docker的管理

# 安装MySQL 5

# 安装MySQL

docker pull mysql:5.7.36

# 运行MySQL

docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.36

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

# 连接

使用数据库管理工具连接数据块即可

# 安装netdata

# 直接安装运行netdata

docker run -d --name=netdata -p 19999:19999 -v netdatalib:/var/lib/netdata -v netdatacache:/var/cache/netdata -v /etc/passwd:/host/etc/passwd:ro -v /etc/group:/host/etc/group:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /etc/os-release:/host/etc/os-release:ro --restart unless-stopped --cap-add SYS_PTRACE --security-opt apparmor=unconfined netdata/netdata

# 打开浏览器

安装完浏览器输入ip + 19999,就进入了

# 安装nextcloud

# 安装nextcloud

docker run -d --name nextcloud -p 80:80 -v /root/nextcloud:/data rootlogin/nextcloud

登录地址为http://ip80端口可自行替换,如果你改成800,那么登录地址会变成http://ip:800/root/nextcloud为网盘的数据库,也可以自行修改

# 设置安装

打开浏览器输入ip + 80 还可以安装手机客户端使用

# 安装code-sever

# 安装code-server

docker run -dit --restart=always --name vscode -h vscode -u root -p 8086:8080 -v /data/vscode:/root -e PASSWORD=mycode -v /etc/localtime:/etc/localtime:ro codercom/code-server:v2 --auth password

--auth password 启动密码 -e PASSWORD=mycode 环境变量设置密码为mycode

# 设置安装

打开浏览器输入ip + 端口号 输入设置的密码就可以进入了

# 安装aira2下载器

# 安装aria2

下载P大调试维护的aria2-pro

docker run -d \
    --name aria2-pro \
    --restart unless-stopped \
    --log-opt max-size=1m \
    --network host \
    -e PUID=$UID \
    -e PGID=$GID \
    -e RPC_SECRET=<TOKEN> \
    -e RPC_PORT=6800 \
    -e LISTEN_PORT=6888 \
    -v ~/aria2-config:/config \
    -v ~/aria2-downloads:/downloads \
    p3terx/aria2-pro

# 链接aria2

# 部署 FreshRSS 自建专属 RSS 服务

# 创建 FreshRSS 目录并进入``

mkdir ~/freshrss && cd ~/freshrss

# 新建 Docker Compose 配置文件

touch docker-compose.yml

# 编辑配置文件,反正我习惯用 Vim

vim docker-compose.yml

# ~/freshrss/docker-compose.yml

version: "3"

services:
  freshrss-db:
    image: postgres:latest
    container_name: freshrss-db
    hostname: freshrss-db
    restart: unless-stopped
    volumes:
      - freshrss-db:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: freshrss
      POSTGRES_PASSWORD: freshrss
      POSTGRES_DB: freshrss

  freshrss-app:
    image: freshrss/freshrss:latest
    container_name: freshrss-app
    hostname: freshrss-app
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - freshrss-db
    volumes:
      - ./data:/var/www/FreshRSS/data
      - ./extensions:/var/www/FreshRSS/extensions
    environment:
      CRON_MIN: '*/45'
      TZ: Asia/Shanghai

volumes:
  freshrss-db:

配置文件几乎和 模板 一致,只需要注意几点:

14~16 行是数据库配置,请自行修改、避免使用默认配置 24 行是宿主机端口映射到容器内端口,由于使用 http 通信请勿修改冒号后的 80 端口,冒号前的 8080 可以更改为任意空闲的端口 31 行是 RSS 刷新周期,单位为分钟,*/45 表示每 45 分钟刷新一次 32 行是时区 :wq 保存退出后,可先前台执行观察输出,若确实无误后便可置于后台持续运行。

# 先前台执行观察输出

docker-compose up

# 确认无误后后台持续运行

docker-compose up -d

# 安装Uptime Kuma

# 创建数据卷

docker volume create uptime-kuma

# 运行容器

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Last Updated: 2/11/2022, 2:51:08 PM