参考文章:【学习笔记】尚硅谷周阳老师的Docker教程学习笔记

一 Docker常用安装

实际上下面mysql、redis的安装涉及到的版本以及目录最好根据自己的实际情况来使用,不一定按照下面,下面的安装只是提供学习使用。

1. 安装tomcat

这里不讲了,很简单,已经安装过很多次,可以先docker search看看星最多的,如果想下载指定版本的,可以登录docker hub的网址,找到对应的tag,然后pull的时候带上该tag即可。

2. 安装mysql

docker search mysql # docker hub上面查找mysql镜像
docker pull mysql:5.6 # 从docker hub上拉取mysql:5.6镜像到本地
docker images # 查看你是否有拉取到mysql
# 运行镜像
docker run -p 12345:3306 --name mysql -v /tyy/mysql/conf:/etc/mysql/conf.d -v /tyy/mysql/logs:/logs -v /tyy/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

mysql在我这里的ubuntu测试不成功,但在centos成功。
不过这个不算问题,大家可以在实际开发中安装高版本的mysql,避免漏洞,并且配置路径、日志路径、数据路径都可以按照自己的需求来做。

3. 安装redis

docker search redis # docker hub上面查找redis镜像
docker pull redis:3.2 # 从docker hub上拉取redis:3.2镜像到本地
docker images # 查看你是否有拉取到redis
# 运行镜像
docker run -p 6379:6379 -v /tyy/myredis/data:/data -v /tyy/myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf -d redis:3.2 redis-server /usr/local/etc/redis/redis.conf --appendonly yes
# 在/tyy/myredis/conf/redis.conf目录下新建redis.conf文件,内容看下面。
vim /tyy/myredis/conf/redis.conf/redis.conf

# 进入reids并添加键值对
docker exec -it redis容器id redis-cli

redis.conf内容,因为太多注释,我把它全部去掉:

# Redis configuration file example.
bind 192.168.2.138
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo no
set-proc-title yes
proc-title-template "{title} {listen-addr} {server-mode}"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
lazyfree-lazy-user-flush no
oom-score-adj no
oom-score-adj-values 0 200 800
disable-thp yes
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
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-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
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
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes
requirepass 123456
daemonize yes

在这里插入图片描述

持久化的内容:
在这里插入图片描述

在这里插入图片描述

二 本地镜像推送到阿里云

我们以添加了vim、ifconfig的那个myubuntu:1.3的自定义镜像为例进行推送到阿里云(在docker的第5篇文章,或者大家也可以自己使用一个测试镜像进行演示)。
阿里云网站

  • 1)先去阿里云创建一个myubuntu的镜像仓库,类似github的仓库。

在这里插入图片描述
在这里插入图片描述

  • 2)本地镜像推送到阿里云。
# 1. 先把容器开启。
docker run -it myubuntu:1.3
Ctrl+P+Q	# 然后退出

# 2. 生成新的镜像。
# docker commit -a tyy -m "new myubuntu 1.4 from 1.3" 你的容器ID 新镜像名
docker commit -a tyy -m "new myubuntu 1.4 from 1.3"  myubuntu:1.4
docker images

# 3. 将镜像推送到registry。具体操作在你创建阿里云仓库的时候有,下面3步就是按照阿里云的指示处理的。
# 1)首先先登录。
docker login --username=tanyiyuan registry.cn-guangzhou.aliyuncs.com

# 2)标记tag。
# 这个ImageId是填你要push的镜像id,例如这里填myubuntu:1.4的镜像id。镜像版本号一般是三位数,例如1.4.1。
# docker tag [ImageId] registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:[镜像版本号]
docker tag 9dc8b171be18 registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:1.4.1

# 3)push到阿里云的仓库。
# 镜像版本号和上面的1.4.1保持一致即可。
# docker push registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:[镜像版本号]
docker push registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:1.4.1
docker images 	# 推送完成后,本地也会有一份myubuntu:1.4.1的镜像。

# 4. 在自己的镜像仓库中查看。
可以看到是有的。

# 5. 在公网阿里云https://dev.aliyun.com查找.不过没有查找到。

第4第5步的截图。
在这里插入图片描述
在这里插入图片描述

  • 3)因为上面推送到阿里云了,所以我们直接删掉本地的1.4.1的镜像,再从阿里云仓库中pull,以此测试拉取下来的镜像是否能成功使用。
# 1. 删除本地镜像。
docker rmi -f registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:1.4.1

# 2. 从阿里云拉取镜像。
# docker pull registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:[镜像版本号]
docker pull registry.cn-guangzhou.aliyuncs.com/tanyiyuan/myubuntu:1.4.1

# 3. 创建容器测试是否能用vim、ifconfig。

在这里插入图片描述

可以看到,拉取下来的镜像成功使用。
但是不知道为啥在公网搜索不到这个镜像,估计是阿里云的bug或者没有及时更新到公网吧,不过问题不大,重要的是我们重新拉取下来的可以使用。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐