参考文章:【学习笔记】尚硅谷周阳老师的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或者没有及时更新到公网吧,不过问题不大,重要的是我们重新拉取下来的可以使用。