Docker Demo 使用示例
示例
使用Docker模拟VM
#!/bin/bash
docker run \
-it \
-d \
--privileged \
--hostname dev \
--name dev \
xiexianbin/ubuntu:20.04 \
/lib/systemd/systemd
for ((i=1; i<=3; i++)); do
docker run \
-it \
-d \
--privileged \
--hostname h-${i} \
--name h-${i} \
xiexianbin/ubuntu:20.04 \
/lib/systemd/systemd
done
Tomcat
docker run -d -t -i -p 8080:8080 -v /var/www/jenkins:/opt/tomcat/apache-tomcat-7.0.56/webapps:rw --name jenkins qikemi/ubuntu:j7t7
docker run -d -t -i -p 8080:8080 -v /var/www/cas:/opt/tomcat/apache-tomcat-7.0.56/webapps:rw --name cas qikemi/ubuntu:j7t7
docker commit -a 'xiexianbin' -m 'java7u79 tomcat7.0.63' 0480bb6d6bf9 xiexianbin/centos:j7t7
docker run -d -t -i -p 8083:8080 -m 512m --restart=always -v /var/www/fuxiaolei:/opt/apache-tomcat-7.0.63/webapps:rw --name war xiexianbin/centos6:j7t7
docker run -d -t -i -p 80:8080 --name j7t7 xiexianbin/centos6:j7t7
docker run -d -t -i -p 8080:8080 -v /var/www/cas:/opt/apache-tomcat-7.0.63/webapps:rw --name cas xiexianbin/centos6:j7t7
docker run -d -t -i -p 8080:8080 -v /var/www/cas:/opt/apache-tomcat-7.0.63/webapps:rw --name cas xiexianbin/centos6:j7t7
docker run -d -t -i -p 8080:8080 -v /var/www/cas:/opt/apache-tomcat-8.5.4/webapps:rw --name cas xiexianbin/centos7:j8t8
Nginx
docker run -d \
--name nginx \
-p 8080:80 \
-v /Users/xiexianbin/Downloads/json.cn:/usr/share/nginx/html:ro nginx
docker run -d -t -i -p 8080:80 -v /var/www/cas:/usr/share/nginx/html:rw --name cas qikemi/ubuntu:latest
Jekyll
docker run -d -t -i -p 8081:8080 -v /var/local/www/docs.xiexianbin.cn:/opt/docker --name docs xiexianbin/centos7:jekyll
PHP
docker run -d -t -i -p 8082:8082 -v /var/local/www/:/var/www/html:rw --name php xiexianbin/centos6:php
vsftpd
docker run -d -v /home/vsftpd:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=test -e FTP_PASS=test --name vsftpd fauria/vsftpd
会以登录用户名 (test) 创建一个目录 (/home/vsftpd/test) 作为 ftp 根目录
Other
docker run -d -t -i -p 8080:80 -v /var/www/cas:/opt/www:rw --name cas centos:6.6
docker run -d -t -i -p 8080:80 -v /var/www/cas:/opt/www:rw --name cas centos:6.6 /bin/bash
docker run -i -t -d -v /var/www/vol:/var/www/vol xiexianbin/centos:base2
mysql
https://hub.docker.com/_/mysql/
启动
docker run -d -e MYSQL_ROOT_PASSWORD=password --name mysql_db -p 3306:3306 mysql
docker run -d -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=auth --name auth-db -p 3306:3306 mysql
docker run --name mariadb \
# -m 300M \
--oom-kill-disable \
--restart=always \
-v /Users/xiexianbin/work/docker/maraidb-5.5:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-p 3306:3306 \
-d mariadb:5.5.64
修改时区 /etc/mysql/my.cnf
添加 default-time-zone
:
[mysqld]
default-time-zone = '+8:00':
授权
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;
数据库初始化
CREATE DATABASE db_name /*!40100 DEFAULT CHARACTER SET utf8 */;
FLUSH PRIVILEGES;
rabbitmq
docker run -d \
--hostname rabbit-1 \
--name rabbit \
--memory 512M \
-p 5672:5672 \
-p 15672:15672 \
-v /Users/xiexianbin/work/docker/rabbitmq:/var/lib/rabbitmq \
rabbitmq:3.7.16-management
# -e RABBITMQ_DEFAULT_USER=root \
# -e RABBITMQ_DEFAULT_PASS=root \
MongoDB
docker run -d \
-p 27017:27017 \
-v /Users/xiexianbin/work/docker/mongo-3.6.3/db:/data/db
--name mongo \
mongo:3.6.3
# -e MONGO_INITDB_ROOT_USERNAME=mongoadmin \
# -e MONGO_INITDB_ROOT_PASSWORD=secret \
docker run -it mongo:3.6.3 mongo --host 172.17.0.1
docker exec 8df /usr/bin/mongo 127.0.0.1:27017
docker exec -it 8df /usr/bin/mongo --host 172.17.0.1
Influxdb
docker run -d \
-p 2003:2003 \
-p 8086:8086 \
-v /Users/xiexianbin/work/docker/influxdb-1.7.10/db:/var/lib/influxdb \
-e INFLUXDB_DB=db0 \
-e INFLUXDB_ADMIN_USER=admin -e INFLUXDB_ADMIN_PASSWORD=admin \
-e INFLUXDB_USER=test -e INFLUXDB_USER_PASSWORD=test \
--name influxdb \
influxdb:1.7.10
influx -host 127.0.0.1 -port 8086
postgres
docker run -d \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v /Users/xiexianbin/work/docker/postgresql:/var/lib/postgresql/data \
--name postgres \
postgres