安装
# 安裝 docker
curl -sSL get.docker.com | sh
# 將目前使用者新增到 docker 群組內,需要重新登入才會生效
sudo usermod -aG docker $USER
# 安裝 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -sL https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安装mysql
docker run --name mysql -d -e MYSQL_ROOT_PASSWORD=smysql -p 3307:3306 --network somenetwork --restart=always mysql:5.7.36
FLUSH PRIVILEGES; 刷新mysql权限
ctrl+p+q 退出,不会停止容器
docker ps
-a , -l 最近创建的, -n 最近n个, -q 只显示容器编号
docker start , docker stop , docker kill 强制停止, docker rm 删除
docker ps -a -q | xargs docker rm 或者 docker rm -f $(docker ps -a -q) 批量删除
docker run -d redis:6.0.8
docker container cp [containID]:[/path/to/file] .
一个 Dockerfile 可以包含多个RUN命令,但是只能有一个CMD命令。指定了CMD命令以后,
docker container run命令就不能附加命令了(比如前面的/bin/bash),否则它会覆盖
CMD命令。
安装rabbitmq
docker run \
-e RABBITMQ_DEFAULT_USER=linghe \
-e RABBITMQ_DEFAULT_PASS=qBc8QUbFsy09zLzfTxXmFuLw \
--name rabbitmq \
--hostname mq1 \
-p 5672:5672 -p 15672:15672 \
-d rabbitmq:3.8-management
安装elasticsearch
docker run -d \
--name es01 \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.17.1
安装kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es01:9200 \
-v kibana-conf:/usr/share/kibana/config \
--network=es-net \
-p 5601:5601 \
kibana:7.17.1