Docker 命令总结
前言: 根据自己工作需要进行了简单的docker命令总结.
目录
一. 基本命令
官方仓库: https://hub.docker.com/
官方安装命令: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
使用国内 daocloud 一键安装(最新版本):curl -sSL https://get.daocloud.io/docker | sh
启动服务: systemctl start docker
重启服务: systemctl restart docker
查看状态: systemctl status docker 停止服务:
systemctl stop docker查看版本:
docker -v`
拉取镜像: docker pull 镜像
查看镜像: docker images
创建容器: docker run -dit --privileged --name 名称 -p 7022:22 -v /home/es_config/plugin:/usr/share/elasticsearch/plugin 镜像ID
(--其中 -v /home/es_config/plugin:/usr/share/elasticsearch/plugin 冒号:前面是宿主机的文件夹地址,冒号:后面是docker容器中的文件夹地址。也可以指定文件.
)
查看容器: docker ps -a
二. export命令
docker export [options] container
示例
docker export -o nginx-test.tar nginx-test
导出为tar
docker export #ID or #Name > /home/export.tar
--其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
三. import命令
docker import [options] file|URL|- [REPOSITORY[:TAG]]
示例
docker import nginx-test.tar nginx:imp
或
cat nginx-test.tar | docker import - nginx:imp
四. save命令
docker save [options] images [images...]
示例
docker save -o nginx.tar nginx:latest
或
docker save > nginx.tar nginx:latest
--其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
五. load命令
docker load [options]
示例
docker load -i nginx.tar
或
docker load < nginx.tar
--其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
六. Elasticsearch容器
镜像: docker pull elasticsearch:6.8.1
-
创建并修改elasticsearch.yml配置文件(修改node-name/添加允许跨域/开启xpack认证)
vi /usr/share/elasticsearch/config/elasticsearch.yml
#name和net配置
cluster.name: "trusfort.es.cluster"
network.host: 0.0.0.0
#支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
#开启x-pack认证
xpack.security.enabled: true
-
启动容器(添加配置文件挂载和环境变量)
docker run -d -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "ELASTIC_PASSWORD=password" --name ecp-es-redis -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /usr/share/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:6.8.1(镜像ID)
(--其中: -v /usr/share/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 冒号:前面 是宿主机的文件地址,冒号:后面是docker容器中的文件地址. -e "ELASTIC_PASSWORD=password" 设置密码(生效前提是elasticsearch.yml中xpack.security.enabled: true); -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 设置内存大小; -e "discovery.type=single-node" 单例模式.
)
七. Redis容器
拉取镜像:
docker pull redis:5.0.5
启动容器: 在启动容器时添加redis密码
docker run --name redis -p 6379:6379 -d redis:5.0.5(镜像ID) --requirepass "your redis password"
拉取镜像并启动容器: (添加密码)
docker run --name redis -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "your redis password"
(--其中: --requirepass "your redis password" 设置密码
)
八. springboot项目
1.Dockerfile
1.1 单个项目(jar)
Dockerfile:
FROM adoptopenjdk/openjdk8
VOLUME /tmp
EXPOSE 8000
ADD ecp-eureka-3.1.0.jar eureka.jar
RUN sh -c 'touch /eureka.jar'
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom","-jar", "/eureka.jar" ]
1.2 多个项目(jar)
Dockerfile:
FROM adoptopenjdk/openjdk8
VOLUME /tmp
COPY ecp-gateway-3.1.0.jar /ecp/gateway/ecp-gateway-3.1.0.jar
COPY ecp-eureka-3.1.0.jar /ecp/eureka/ecp-eureka-3.1.0.jar
COPY ecp-manage-3.1.0.jar /ecp/manage/ecp-manage-3.1.0.jar
COPY eureka_gateway_manage_start.sh /ecp/start.sh
CMD ./ecp/start.sh
start.sh启动脚本:
#!/bin/bash
cd /ecp/eureka
nohup java -Dfile.encoding="UTF8" -Dsun.jnu.encoding="UTF8" -jar ecp-eureka-3.1.0.jar > eureka.log 2>&1 &
cd /ecp/gateway
nohup java -Dfile.encoding="UTF8" -Dsun.jnu.encoding="UTF8" -jar ecp-gateway-3.1.0.jar > gateway.log 2>&1 &
cd /ecp/manage
nohup java -Dfile.encoding="UTF8" -Dsun.jnu.encoding="UTF8" -jar ecp-manage-3.1.0.jar > manage.log 2>&1 &
cd
echo "启动成功"
/bin/bash
2.构建docker镜像( 注意最后有个"." )
docker build -t springbootdemo .
3.查看镜像
docker images
4.启动容器
docker run -dit --privileged --name 名称 -p 7022:22 镜像ID
九. 网关docker运行命令
docker run -it --name ecg-gw1 -p 12345:12345 -p 10001:10001 -p 10005:10005 -p 9000:9000 镜像id
十. 拉取java8环境镜像
docker pull adoptopenjdk/openjdk8
docker commit :从容器创建一个新的镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。