docker学习

docker常用命令

# 启动docker
systemctl start docker
# 停止dokcer
systemctl stop docker
# 查看docker状态
systemctl status docker 
# 重启docker
systemctl restart docker
# 设置docker 开机自启
systemctl enable docker
# 查看docker 版本
docker version
# 查看docker 镜像
docker images
# 查看docker 运行列表
docker ps 
# 查看docker (运行、停止)
docker ps -aq
# 删除容器
docker rm -f 容器ID/容器名称(CONTAINER ID/NAMES)
#  删除多个容器(空格隔开)
docker rm -f 容器ID/容器名称 容器ID/容器名称 ...
# 删除全部容器
docker rm -f $(docker ps -aq)

#开机自启容器

docker run --name=容器名 -d --restart=always 镜像名

基本命令

查看镜像列表

docker images

下拉镜像

docker pull 镜像名
docker pull 镜像名:Tag

删除镜像

docker rmi -f 镜像名/镜像ID

保存镜像

将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后 可以在任何一台安装了docker的服务器上 加载这个镜像

docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字

加载镜像

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

docker load -i 镜像保存文件位置

容器列表

docker pssudo docker ps -a # 查看所有容器 -----包含正在运行 和已停止的

创建容器

docker run -it -d --name 要取的别名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文件位置 镜像名:Tag /bin/bash 

停止容器

docker stop 容器名/容器ID

删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

进入容器

进入正在运行中的容器

docker attach 容器ID/容器名

修改容器的端口号

1、停止容器

docker stop 容器ID

2、停止docker

systemctl stop docker

3、修改文件

​ 先进入目录

如果通过容器ID找不到目录可能是容器ID不全,先执行cd /var/lib/docker/containers命令进入目录后查看容器ID。

cd /var/lib/docker/containers/容器ID*


[root@centos-base /]# cd /var/lib/docker/containers/856d790c064b
-bash: cd: /var/lib/docker/containers/856d790c064b: 没有那个文件或目录
[root@centos-base /]# cd /var/lib/docker/containers
[root@centos-base containers]# ls
856d790c064bad2696781289717994be3a70b521328176ff0c3e6bf29bf04e13
[root@centos-base containers]# cd 856d790c064bad2696781289717994be3a70b521328176ff0c3e6bf29bf04e13/
[root@centos-base 856d790c064bad2696781289717994be3a70b521328176ff0c3e6bf29bf04e13]# ls
修改hostconfig.json文件
vi hostconfig.json

找到类似如下字段:按照json文件格式添加或修改成需要的端口号即可

"PortBindings": {
    "111/tcp": [  //容器端口1
        {
            "HostIp": "",
            "HostPort": "111" //宿柱机端口1
        }
    ],
    "222/tcp": [   //容器端口2
        {
            "HostIp": "",
            "HostPort": "222" //宿柱机端口2
        }
    ]
}

4、重启docker

systemctl restart docker

5、重启容器

docker restart 容器ID

安装MySQL

拉去镜像

docker pull mysql

运行镜像

docker run -d -p 3306:3306 -v /docker_volume/mysql/conf:/etc/mysql/conf.d -v /docker_volume/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --name  mysql mysql

查看容器内部

docker exec -it mysql /bin/bash

登录MySQL

mysql -u root -p

重启MySQL

docker restart mysql
docker stop mysql        #停止
docker start mysql       #启动

安装redis

创建目录

mkdir -p docker_volume/redis/myredis
mkdir -p docker_volume/redis/myredis/data

配置文件

myredis.conf

# bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
#bind 127.0.0.1

protected-mode no
port 6379
tcp-backlog 511
requirepass root
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 30
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes

启动redis容器

docker run --restart=always --log-opt max-size=100m --log-opt max-file=2 -p 6379:6379 --name myredis -v /docker_volume/redis/myredis/myredis.conf:/etc/redis/redis.conf -v /docker_volume/redis/myredis/data:/data -d redis redis-server /etc/redis/redis.conf  --appendonly yes  --requirepass root

  1. --restart=always 总是开机启动

  1. --log是日志方面的

  1. -p 6379:6379 将6379端口挂载出去

  1. --name 给这个容器取一个名字

  1. -v 数据卷挂载

- /home/redis/myredis/myredis.conf:/etc/redis/redis.conf 这里是将 liunx 路径下的myredis.conf 和redis下的redis.conf 挂载在一起。

- /home/redis/myredis/data:/data 这个同上

  1. -d redis 表示后台启动redis

  1. redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录 /etc/redis/redis.conf 也就是liunx下的/home/redis/myredis/myredis.conf

  1. –appendonly yes 开启redis 持久化

  1. –requirepass root 设置密码 (如果你是通过docker 容器内部连接的话,就随意,可设可不设。但是如果想向外开放的话,一定要设置,我被搞过,可以看这篇文章“阿里云服务器中毒‘Kirito666’经历”)

  1. 成功界面

通过docker ps指令查看启动状态

dockerps-a|grep myredis # 通过docker ps指令查看启动状态,是否成功.1

查看容器运行日志

#查看此容器30分钟之内的日志情况。
docker logs --since 30m myredis

容器内部连接进行测试

#命令:docker exec -it <容器名> /bin/bash
docker exec -it myredis redis-cli

安装mongodb

拉去镜像

docker pull mongo

创建mongo数据持久化目录

mkdir -p /docker_volume/mongodb/data

运行容器

docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo --auth

登录mongo容器,并进入到【admin】数据库

 docker exec -it mongo mongosh admin

创建一个用户,mongo 默认没有用户

db.createUser({ user:'root',pwd:'root',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']});

连接mongo数据库

db.auth('root', 'root')

测试数据库

#插入一条语句
 db.user.insert({"name":"zhangsan","age":18})
#查询
 db.user.find()

安装RabbitMQ

拉取镜像

docker pull rabbitmq

启动RabbitMQ

docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

安装插件

  1. 先执行docker ps 拿到当前的镜像ID

  1. 进入容器

  1. 安装插件

  1. ctrl+p+q退出当前容器

docker ps 
docker exec -it 镜像ID /bin/bash
rabbitmq-plugins enable rabbitmq_management

访问地址

http://linuxip地址:15672,这里的用户名和密码默认都是guest

安装kafka

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值