Docker 教程,源码翻译【周立的博客】
Docker 命令大全【菜鸟教程】
docker-compose小总结
Docker 容器卷
Dockerfile
Docker 网络
Windows访问Linux虚拟机里面的Docker容器
Docker 命令大全—官方文档
概念
更新时间
2020-04-29 14:27:34
Docker是一个开源的应用容器引擎;是一个轻量级容器技术;
Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;
运行中的这个镜像称为容器,容器启动是非常快速的。
1 | docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); |
安装
更新时间
2020-04-29 11:27:32
安装VMware,安装镜像,配置Linux网络相关参考:
Windows下载+安装VMware Workstation 15.5.1 Pro
使用VMware15安装镜像CentOS-7-x86_64-DVD-1511.iso,并设置Linux网络
2020-07-31 15:48:19
1 | ### 安装新版 Docker ### |
1)、sed -i 's/--selinux-enabled/--selinux-enabled=false/g' /etc/sysconfig/docker
解决Docker安装成功启动不起来问题:Failed to start Docker Application Container Engine.
2)、上面是我的阿里云镜像地址,你也可以使用。
也可以使用163网易地址:http://hub-mirror.c.163.com
也可以使用你自己的阿里云镜像地址
基本命令
1 | # 查看版本 |
镜像
如果标签为latest,可以省略
1 | # 镜像保存、加载 <==== 2024-06-06 11:46:34 补 |
上传镜像
1)、首先你需要一个Docker
的账户,没有就去注册一个,并创建好仓库。
通常仓库名就是对应镜像的名称,例如一些仓库名:redis,tomcat,mysql 。。。
https://hub.docker.com/
2)、提交镜像之前,要先登录输入账户名,密码docker login
登录成功会提示:Login Succeededdocker logout
退出账户,退出成功会提示:Removing login credentials for https://index.docker.io/v1/
3)、把你要上传的镜像,重新换一个名称和标签。否则不知道上传到哪个仓库docker tag 本地镜像名:标签 账户名/仓库名:标签
例如:docker tag mytomcat:1.0 a1697752105/tomcat:1.0
这时,我的docker images
列表就会多一个镜像
4)、上传本地镜像到DockerHub仓库。上面docker tag就是为了把镜像生成符合上传的格式docker push 账户名/仓库名:标签
5)、查找你的仓库
docker search 仓库名
6)、拉取你仓库的镜像docker pull 账户名/仓库名:标签
容器
容器命令
1 | docker run 运行容器 如果docker images中没有会自动pull拉取镜像 |
1 | # 容器重命名 |
给容器安装命令
这些是nginx的容器,在容器内执行
1 | # ip |
启动的容器
Redis
启动容器docker run --name redis01 -p 6379:6379 -d redis
操作Redis客户端docker exec -it redis01 redis-cli
或docker exec -it redis01 bash
进入容器之后再输入redis-cli
》》》如果想指定自己的redis.conf配置文件
也可以去下载Redis 配置【官网】
1 | # 创建目录 |
MySQL
更新时间
2020-04-29 14:21:27
1 | # 步骤1:启动容器 |
- 命令解释
1
2
3
4
5
6
7docker run 表示容器运行指令
-p 3306:3306 表示 Linux端口:容器端口
--name mysql01 表示设置容器名称为 mysql01 这里设置的名称不可以和 docker ps -a 指令查出的 NAMES 列名称相同,否则会报错
-e MYSQL_ROOT_PASSWORD=123456 表示设置密码123456 少了此段话,容器启动也会报错
-d 表示后台运行
mysql 表示容器名称 因为我名称为mysql的镜像标签为 latest 所以不用设置标签,表示默认,也可以设置为 mysql:latest 如果标签不是 latest 就设置为mysql:标签ID
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 表示设置编码
- tencent 密码
2021-07-17 12:54:46 补充1
2
3
4
5
6
7
8
9
10
11
12
13docker run --name mysql01_tencent_password -p 3306:3306 \
-v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Qq1801957499.. -d mysql \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker exec -it mysql01_tencent_password bash
mysql -uroot -pQq1801957499..
alter user 'root'@'%' identified with mysql_native_password by 'Qq1801957499..';
exit
exit
Tomcat
docker run --name tomcat01 -d -p 8080:8080 tomcat
RabbitMQ
docker run --name rabbitmq01 -p 5672:5672 -p 15672:15672 -d rabbitmq:3-management
1 | 修改默认用户名,密码,虚拟主机 |
Elasticsearch
docker run --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -d elasticsearch:7.4.0
安装ik分词器(三步)
1)、进入容器(elasticsearch01是docker已经运行的容器名称)docker exec -it elasticsearch01 /bin/bash
2)、安装分词器7.4.0,因为我的镜像是elasticsearch:7.4.0,安装过程中输入y即可elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip
3)、分词器安装完成之后,重启elasticsearch容器docker restart elasticsearch01
Kibana
docker run --name kibana01 --link elasticsearch01:elasticsearch -p 5601:5601 -d kibana:7.4.0
注意:
1)、这里的elasticsearch01是运行的elasticsearch容器名称
2)、第一次访问可能比较慢,稍等一下
Zookeeper
docker run --name zookeeper01 -p 2181:2181 -d zookeeper
启动Docker自动启动容器docker run --name zookeeper01 -p 2181:2181 --restart=always -d zookeeper
MongoDB
docker run --name mongo01 -d -p 27018:27017 mongo
Consul
运行容器docker run --name consul01 -p 8300:8300 -p 8500:8500 -p 8600:8600 -d consul
访问Consul首页http://192.168.1.1:8500/
交互式进入【这里是/bin/sh 而不是/bin/bash】docker exec -it consul01 /bin/sh
查看版本号【已交互式进入容器】consul -v
Nacos
1)、单机版docker run --name nacos01 -p 8848:8848 -e MODE=standalone -d nacos/nacos-server
这里192.168.1.1是我的虚拟机地址(第一次启动,可能需要稍微等会儿~)http://192.168.1.1:8848/nacos/
账号,密码默认nacos
2)、集群版
参考Nacos 集群版安装
Nginx
2020-05-27 10:47:49
以下命令直接全部复制,执行即可。
1 |
|
》》》指定网络
Docker启动Nginx负载均衡Nacos集群,指定网络启动Nginx参考这里
1 | docker run --name nginx01 -p 80:80 \ |
》》》指定目录
2022-02-09 16:16:08
1 | mkdir -p /app/docker/nginx |
Sentinel
docker run --name sentinel01 -p 8858:8858 -d bladex/sentinel-dashboard
账号密码都是sentinel,登录地址http://192.168.1.1:8858/
Seata
1)、启动容器,这个容器只作拷贝文件使用docker run --name seata01 -p 8091:8091 -d seataio/seata-server:1.0.0
2)、拷贝容器docker cp seata01:/seata-server/resources /app/docker/seata
3)、拷贝之后,强制删除容器docker rm -f seata01
4)、进入目录cd /app/docker/seata/resources
5)、把原本的file.conf文件,进行改名mv file.conf bak.file.conf
6)、拷贝一份,新文件叫file.conf,再进行修改cp file.conf.example file.conf
vi file.conf
三个地方:事务组名称,储存方式,数据库连接信息
7)、连接上指定的mysql,并执行下面创表SQL。执行完毕之后,会有一个库,三个表
建库建表SQL
1 | create database if not exists seata character set utf8; |
8)、修改之前,先备份一份,再进行修改cp registry.conf bak.registry.conf
vi registry.conf
两个地方:注册类型,注册地址
9)、这时候,再启动容器
注意:启动容器之前,要先完成上面的步骤,并启动MySQL,Nacos
1 | docker run --name seata01 -p 8091:8091 \ |
10)、可以查看日志docker logs seata01
11)、可以交互式进入容器docker exec -it seata01 sh
SQL Server
注意:这里我设置的密码是Qq1801957499..
,你可以改为别的密码,但最好有大小写数字符号,否则可能启动容器出错。
1 | docker run --name sql-server01 -p 1433:1433 \ |
Centos
2020-06-09 09:00:21
这个是latest版本,有ip,ping命令
启动docker run -it --name centos01 -d centos /bin/bash
进入docker exec -it centos01 bash
Kafka
2020-08-27 15:19:58 开始搞,2020-08-31 17:21:44 终于搞好了。
1 | # 1. 创建文件夹,用于放 docker-compose.yml 文件 |
1 | # 操作 k1 容器 |
Kafka-Manager(已废弃)
2022-02-17 10:24:59
1 | cat > /app/docker/kafka/docker-compose.yml << 'EOF' |
注意:把上面的 10.11.16.222
改为你自己的宿主机ip。
安装完成访问:http://10.11.16.222:9000/
FTP
2021-01-21 16:12:45
注意:这个不能在 mac 上的 docker 使用
一行代码简单粗暴(账号密码都是“ftp”,其中 FTP 连接之后的根目录指向我的“/app/docker/ftp”)docker run --name ftp01 -p 21:21 -p 21100-21110:21100-21110 -v /app/docker/ftp:/home/vsftpd -e FTP_USER=ftp -e FTP_PASS=ftp -d fauria/vsftpd
portainer
PostgreSQL
2021-11-05 16:36:45
https://hub.docker.com/_/postgres
最新版本(latest):docker run --name postgresql01_tencent_password -p 5432:5432 -e POSTGRES_PASSWORD=Qq1801957499.. -d postgres
10.19版本:docker run --name postgresql01_tencent_password -p 5432:5432 -e POSTGRES_PASSWORD=Qq1801957499.. -d postgres:10.19
1 | ip 你的ip |
1 | 2022-11-15 18:33:11 补充 ======> postgres:14 |
apollo
2024-04-16 14:43:22 之前一直没做这个记录,今天做一下。
1、先执行创建数据库 mysql MySQL脚本(记得修改 eureka地址)
2、部署顺序 configservice -> adminservice -> portal(等待前一个启动完成,再启动后面的)【依赖关系图片】
3、登录 http://127.0.0.1:8070/
(账号=apollo 密码=admin)
1 | # 1. configservice |