Docker学习积累

常用命令

删除所有已停止的容器

1
docker rm $(docker ps -a -q)

删除容器以及它关联的所有的卷

1
docker rm -v redis

查看Docker镜像版本

如果没有安装jq的话显示为一整行
1
curl -s https://registry.hub.docker.com/v1/repositories/${image_name}/tags
如果安装jq的话,可以只取出来指定的版本那列
1
curl -s https://registry.hub.docker.com/v1/repositories/${image_name}/tags | jq ".[].name" | sed -e "s/\"//g"

常见问题

Windows使用Git Bash以交互的方式进入容器

1
winpty docker exec -ti containerid sh

常用容器

MySQL

1
2
3
4
5
6
7
8
9
docker run -d --name mysql \
--privileged \
--restart=always \
-e TZ="Asia/Shanghai" \
-e MYSQL_ROOT_PASSWORD="123@ningyu.me" \
-e MYSQL_USER="ningyu" \
-e MYSQL_PASSWORD="123456" \
-p 3306:3306 \
mysql:5.7.33 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
1
docker run -d --name mysql --restart=always -e TZ="Asia/Shanghai" -e MYSQL_ROOT_PASSWORD="123@ningyu.me" -e MYSQL_USER="ningyu" -e MYSQL_PASSWORD="123456" -p 3306:3306 mysql:5.7.33 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

MariaDB

1
2
3
4
5
6
7
8
docker run -d --name mariadb \
--privileged \
--restart=always \
-e TIMEZONE=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
-e SERVER_ID=1 \
-p 3306:3306 \
mariadb:10.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Camunda

需要本地先启动一个mariadb数据库

1
2
3
4
5
6
7
8
9
docker run -d --name camunda \ 
-p 8080:8080 \
--link mariadb:camunda \
-e DB_DRIVER=com.mysql.jdbc.Driver \
-e DB_URL=jdbc:mysql://localhost:3306/camunda \
-e DB_USERNAME=root \
-e DB_PASSWORD=123456 \
-e WAIT_FOR=db:3306 \
camunda/camunda-bpm-platform:latest

Jenkins

1
2
3
4
5
docker run -d --name jenkins \ 
-v jenkins_home:/var/jenkins_home \
-p 8080:8080 \
-p 50000:50000 \
jenkins/jenkins:lts

OpenJDK

1
docker run -it -v "$(pwd)":/deployments openjdk:8u191-jdk-alpine3.9

Maven

1
2
3
4
5
6
7
docker volume create maven-repo
docker run -it --rm \
-v maven-repo:/root/.m2 \
-v "$(pwd)":/usr/src/mymaven \
-w /usr/src/mymaven \
maven:3.6 \
mvn clean package -Dmaven.test.skip=true

InfluxDB

1
2
3
4
5
6
7
8
9
10
11
docker run -d --name influxdb \
-v "$(pwd)":/var/lib/influxdb \
-p 8086:8086 \
-p 8083:8083 \
-e INFLUXDB_DB=influxdb \
-e INFLUXDB_ADMIN_ENABLED=true \
-e INFLUXDB_ADMIN_USER=admin \
-e INFLUXDB_ADMIN_PASSWORD=123456 \
-e INFLUXDB_USER=root \
-e INFLUXDB_USER_PASSWORD=123456 \
influxdb:1.5.3

Kapacitor

1
docker run -p 9092:9092 -v $PWD:/var/lib/kapacitor -e KAPACITOR_INFLUXDB_0_URLS_0=http://10.168.222.120:8086  kapacitor