Docker 镜像使用笔记

记录一下常用的 Docker 镜像使用命令,方便以后使用(主要还是懒~~)。

命令

run,pull 之类的就不说了,说一下会用得到又不常用的

在docker启动容器可以增加参数来达到,当 docker 服务重启之后 自动启动容器.

1
docker run --restart always

当然如果你的容器已经启动,可以通过update命令进行修改.

1
docker update --restart always <CONTAINER ID>

如果你想取消掉

1
docker update –-restart no <CONTAINER ID>

数据库

Mysql

启动 MySQL 5.6 并设置默认密码(其他版本请自行更改 TAG)

1
2
3
4
5
6
docker run -d \
--name mysql6 \
--restart always \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=mysql6_root_pwd \
mysql:5.6

解决 VPS 开发环境下,MySQL 默认占用内存过大问题

编写配置文件 custom-mysql-config.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[mysqld]
# /etc/my.cnf
performance_schema = 0
innodb_buffer_pool_size=5M
innodb_log_buffer_size=256K
query_cache_size=0
max_connections=10
key_buffer_size=8
thread_cache_size=0
host_cache_size=0
innodb_ft_cache_size=1600000
innodb_ft_total_cache_size=32000000
# per thread or per operation settings
thread_stack=131072
sort_buffer_size=32K
read_buffer_size=8200
read_rnd_buffer_size=8200
max_heap_table_size=16K
tmp_table_size=1K
bulk_insert_buffer_size=0
join_buffer_size=128
net_buffer_length=1K
innodb_sort_buffer_size=64K
# settings that relate to the binary log (if enabled)
binlog_cache_size=4K
binlog_stmt_cache_size=4K

```

通过 Docker 启动 MySQL 并指定配置文件:

``` shell
docker run -d \
--restart always \
--name mysql6 \
-p 3306:3306 \
-v /home/codingfanlt/Docker/mysql6/config/custom-mysql-config.cnf:/etc/mysql/conf.d/custom-mysql-config.cnf \
-e MYSQL_ROOT_PASSWORD=mysql6_root_pwd \
mysql:5.6

参考:https://hub.docker.com/_/mysql/

Redis

启动 Redis 并设置认证密码

1
2
3
4
5
6
docker run -d \
--name redis5 \
--restart always \
-p 6379:6379 \
redis:5.0 \
--requirepass "redis5_root_pwd"

进入 redis-cli :

1
docker exec -it redis5 redis-cli

Oracle

非官方镜像

port: 1521
sid: xe
service name: xe
username: system
password: oracle

1
2
3
4
5
docker run -d\
--name oracle12c \
-p 8080:8080 \
-p 1521:1521 \
sath89/oracle-12c

该命令并未设置开机自动启动,每次开机后使用以下命令启动:

1
docekr start oracle12c

参考:https://hub.docker.com/r/sath89/oracle-12c/

机器学习

tensorflow 官方镜像

挂载代码目录并设置默认密码(tensorflow 官方默认镜像为 Python2 版本):

1
2
3
4
5
6
7
8
docker run -d \
--name tensorflow \
-p 8888:8888 \
-p 6006:6006 \
-e PASSWORD="your_passwd" \
-v /home/codingfanlt/Docker/Tensorflow:/notebooks \
--restart always \
tensorflow/tensorflow

使用 Python3 版本 tensorflow :

1
2
3
4
5
6
7
8
docker run -d \
--name tensorflow-py3 \
-p 8888:8888 \
-p 6006:6006 \
-v /home/codingfanlt/MachineLearning/TensorFlow:/notebooks \
-e PASSWORD="your_passwd" \
--restart always \
tensorflow/tensorflow:latest-py3

参考:https://hub.docker.com/r/tensorflow/tensorflow/

分布式

Zookeeper

1
2
3
4
5
6
7
8
9
10
11
docker run -d \
--name node01 \
--net host \
--restart always \
-v /home/codingfanlt/Docker/zookeeper/data:/data \
-v /home/codingfanlt/Docker/zookeeper/zoo.cfg:/conf/zoo.cfg \
-v /home/codingfanlt/Docker/zookeeper/myid:/data/myid \
-p 2181:2181 \
-p 2888:2888 \
-p 3888:3888 \
zookeeper

私有云

Nextcloud

1
2
3
4
5
6
docker run -d \
--name nextcloud \
-v /var/data/nextcloud:/var/www/html \
-p 80:80 \
--restart always \
nextcloud

参考:https://hub.docker.com/_/nextcloud/

Cloud Commander

1
docker run -t --rm -v ~:/root -v /:/mnt/fs -p 8000:8000 coderaiser/cloudcmd