前言: 根据自己工作需要进行了简单的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
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)
docker import [options] file|URL|- [REPOSITORY[:TAG]] 示例 docker import nginx-test.tar nginx:imp 或 cat nginx-test.tar | docker import - nginx:imp
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)
docker load [options] 示例 docker load -i nginx.tar 或 docker load < nginx.tar --其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
镜像: 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" 单例模式.)
拉取镜像: 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" 设置密码)
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 run -it --name ecg-gw1 -p 12345:12345 -p 10001:10001 -p 10005:10005 -p 9000:9000 镜像id
docker pull adoptopenjdk/openjdk8
docker commit :从容器创建一个新的镜像。 语法 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像; -m :提交时的说明文字; -p :在commit时,将容器暂停。
