一 docker基本命令
镜像操作
① 列举镜像
docker images
② 搜索镜像(以jdk为例)
docker search jdk
③ 下载镜像
docker pull java
④ 查看所有镜像
docker images
⑤ 启动镜像(以jdk8为例)
docker run -it --name jdk1.8 -d java:latest /bin/bash
⑥ 删除镜像
docker rmi [镜像id] docker rmi [镜像名称]:[tag]
容器操作
① 进入某个容器进行操作
// 以进入mysql容器为例:
docker exec -it {{自己容器进程ID,用docker ps查看}} /bin/bash
② 查看所有运行着的容器
docker ps -a
③ 启动容器
docker start [容器id]
④ 停止容器
docker stop [容器id]
⑤ 删除容器
docker rm [容器id]
⑥ 查看运行的容器日志
docker logs [OPTIONS] 容器ID或容器名称 [OPTIONS]-f : 跟踪日志输出
-t : 显示时间戳
--tail :仅列出最新N条容器日志
--since:显示某个日期至今的所有日志
查看最近10条日志, 并持续打印
docker logs -f --tail 10 efb78392fcc6
查看某个日期至今的所有日志, 并持续打印
docker logs -f --since "2022-05-16" efb78392fcc6
二 安装mysql
docker pull mysql:8.1.0
启动mysql
# 第一个3306是物理机端口,第二个3306是docker容器端口
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.1.0
停止mysql
docker rm {{需要删除进程的ID}} 使用 docker ps -a 命令查看
或
docker rm {{需要删除进程的名字}},例 docker rm mysql
然后修改权限:
// 进入mysql容器:
docker exec -it {{自己容器进程ID,用docker ps查看}} /bin/bash
// 登录mysql:
mysql -uroot -proot
// 修改密码:记得flush privileges一下
ALTER USER 'root'@'%' IDENTIFIED BY '123456'(密码);
flush privileges;
mysql配置文件: vim /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_ connection = utf8_ unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
三 安装Oracle
# 安装oracle
https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g
docker pull oracleinanutshell/oracle-xe-11g # 运行镜像 -p: 是容器内部端口绑定到指定的主机端口
docker run --name oracle -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true oracleinanutshell/oracle-xe-11g # 进入容器
docker exec -it 容器id /bin/bash # 连接 oracle
su oracle
cd $ORACLE_HOME
bin/sqlplus / as sysdba
# 创建账号
create user qingxi identified by 123456;
grant connect,resource to qingxi; # 修改密码
alter user 用户名 identified by 新密码; # 删除用户
drop user 用户名;
四 安装Postgresql
# 拉取镜像
docker pull postgres # 启动镜像
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=pass123 postgres # 进入容器
docker exec -it 容器id /bin/bash # 连接pg
psql -U postgres -h 127.0.0.1 -p 5432
五 安装redis
docker pull redis
启动
// 创建配置文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis \
--restart=always \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
redis-cli控制台:
docker exec -it redis redis-cli
redis开启持久化,修改配置文件redis.conf,启动aof持久化,输入:
appendonly yes
docker启动之后,mysql、redis也自动启动:
docker update mysql --restart=always
docker update redis --restart=always
六 安装portainer
-it表示使用交互方式运行容器,能进入容器内部进行内容的查看
-p 9000:9000把主机的9000端口映射到docker的9000端口上
--name给容器命名
--restart=always是重启策略,表示随着docker的重启而重启
-v表示把数据挂载到本机
--privileged=true表示授权
docker run -d -p 9000:9000 --name portainer \
--restart=always -v /var/run/docker.sock:/var/run/docker.sock \
--privileged=true portainer/portainer
七 Linux图形话监控netdata
docker run -d --name=netdata \
-p 19999:19999 \
-v netdataconfig:/etc/netdata \
-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
八 安装Gitlab
docker run -d -p 443:443 -p 8001:8001 -p 222:22 --name gitlab \
--restart always \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:12.7.6-ce.0 # -d:后台运行
# -p:将容器内部端口向外映射
# --name:命名容器名称
# -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录 # 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://121.4.123.248'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '121.4.123.248'
# 此端口是run时22端口映射的222端口
gitlab_rails['gitlab_shell_ssh_port'] = 222
nginx['listen_port'] = 8001 http://121.4.123.248:8001/
root/ChatP@ss7633
九 安装Grafana
docker pull grafana/grafana
docker run -d -p 3000:3000 --restart always --name=grafana \
-v /root/grafana/data:/var/lib/grafana grafana/grafana
十 安装 Prometheus
docker pull bitnami/prometheus docker run \
-p 9090:9090 \
-v /root/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml \
--name prometheus bitnami/prometheus