Docker-基本操作概念明确

Docker

镜像导出离线导入

docker save nginx > nginx.tar
docker load -i nginx.tar

参数

容器之间交互 --link answer-server:answerserver

answer-server 容器名

answerserver 容器别名,用于容器与容器之间的访问

-ti

-t选项是让Docker分配一个伪终端并绑定到容器的标准输入上,-i则让容器的标准输入保持打开。

-d

在后台以守护态运行(Daemonized)形式运行

docker run -d centos /bin/sh -c "while true;do echo hello word;sleep 1;done"

-P

随机映射一个30000-49900的端口到容器内部开放的网络端口

-p

指定端口xxx:xxx的映射

命令

# 将docker中的内容拷贝到本地
docker cp vk:/usr/local/openjdk-8/jre/lib/security/java.security ./

# 查询网络
# 如果容器没有显示指定使用的网络,默认使用bridge 
docker network ls

# 创建网络
# -d 指定类型 my_bridge为名称 
docker network create -d bridge my_bridge  

# 将已存在的容器加入my_bridge网络并验证
docker network connect my_bridge busybox_2 
docker network inspect my_bridge 

# 查看所有网络配置信息
docker inspect (容器ID/容器别名)

# 显示容器IP地址和端⼝号,如果输出是空的说明没有配置IP地址(不同的Docker容器可以通过此IP地址 互相访问) 
docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID 

# 显示⼀个运⾏的容器⾥⾯的进程信息
docker top birdben/ubuntu:v1 

# 前台交互式启动docker容器
docker run -it image:tag /bin/bash
# 后台守护式启动docker容器
docker run -d image:tag /bin/bash

# (重要)工作中常用方式
docker run -d image:tag /bin/bash
# 进入容器
docker exec -it 容器ID /bin/bash

Dockerfile镜像

Dockerfile是⼀个⽂本格式的配置⽂件,⽤户可以使⽤Dockerfile快速创建⾃定义的镜像

由四部分组成: 基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

例子:

# 指定基础镜像(重要)
FROM mysql:5.7
# 维护者信息(重要)
MAINTAINER shanPeng

# 指定环境变量 后续被RUN指令使用,并在容器运行时保持(重要)
ENV TZ=Asia/Shanghai

# 每条RUN命令将在当前镜像基础上执⾏指定命令,并提交为新的镜像。当命令较⻓时可使⽤\来换⾏。(重要)
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 复制本地主机的<src>到容器中的<dest>。⽬标路径不存在时,会⾃动创建,用于构建image。
COPY ./tables_nacos.sql /docker-entrypoint-initdb.d
COPY ./shanPeng-mysql-5.7.sql /docker-entrypoint-initdb.d

# 复制本地主机的<src>到容器中的<dest>。⽬标路径不存在时,会⾃动创建,用于构建image。
# 与COPY区别:ADD可以为url;ADD到container的tar文件会自动解压,并删除源tar文件。例如:
ADD ./shanPeng-mysql-5.7.sql /docker-entrypoint-initdb.d

# 告诉docker服务器容器暴露的端口号,供互联系统使用;例如:
EXPOSE 端口号1 端口号2

# 配置容器启动后执行的命令,不会被docker run 提供的参数覆盖(与CMD的区别)例如:
ENTRYPOINT ["要执行的命令","参数1","参数2"]

# 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放外部数据;例如:
VOLUME ["/tomcat/webapps"]

# 设置默认的工作目录
WORKDIR /path/to/workdir

# 启动容器时执行的命令 会被docker run提供的参数覆盖;例如:
CMD ["要执行的命令","参数1","参数2"]

运行

# -t 为构建的镜像制定一个标签
# . 指定Dockerfile文件在当前目录下,也可以替换为一个具体的Dockerfile路径
docker build -t="userM:v1" .

Docker-Compose连编应用部署

它允许⽤户通过⼀个单独的 docker-compose.yml 模板⽂ 件(YAML 格式)来定义⼀组相关联的应⽤容器为⼀个项⽬(project)。

例子:docker-compose.yml

version: '2'
services:
  userM-admin:
    image: userM/admin
    ports:
      - "8080:8080"
    environment:
      - spring.profiles.active=dev
  userM-api:
    image: userM/api
    ports:
      - "8081:8081"
    environment:
      - spring.profiles.active=dev

安装

# 安装epel扩展源
sudo yum -y install epel-release

# 安装python-pip
yum -y install python-pip

# 清除缓存cache
sudo yum clean all

#通过pip安装docker-compose
sudo pip install -U docker-compose

检验是否安装完成

docker-compose -h

执行

# up 启动 
# -f 运行./compose/下的docker-compose.yml文件
# -p 将容器名设置为myapp
# -d 后台运行
sudo docker-compose -f ./compose/docker-compose.yml -p myapp up -d
# 用于停止所有容器,并将他们删除,同时删除网络等配置信息
docker-compose down

DOCKER容器时区问题解决

rm -rf /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

容器启动命令

Db2

docker run
	docker run -itd --name db2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=Aa112233! -e DBNAME=testdb  -v /db2/database:/database ibmcom/db2

db2 命令

切换到用户实例db2inst1
su - db2inst1
	
启动实例
db2start
	
查看运行状态
db2pd - 
	
查询已经建好的数据库
db2 list db directory
	
连接到数据库sample
db2 connect to sample
	
db2 "select count(*) from  V_Singlecheckquery where  intercode like '001%'    and intercode like '001%'  and sendtime > '2022-07-10 00:00:00'  and sendtime < '2022-07-10 23:59:59'"
	
--查询当前schema
db2 values current schema
--设置默认schema
db2 set schema = sfhc

Redis

docker run -p 6379:6379 --name redis_vk -v /data/redis/redis.conf:/etc/redis/redis.conf  -v /data/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

Nginx

docker run -d -p 80:80  \
              -p 443:443  \
 --name nginxweb \
 --link answer-server:answerserver \
 -v /usr/local/docker/nginx/html:/usr/share/nginx/html \
 -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v /usr/local/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
 -v /usr/local/docker/nginx/logs:/var/log/nginx \
 nginx 

MySql

docker run -d --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6

Tomcat

docker run -d --name tomcat --restart=always -p 8080:8080 --link mysql -v /webapps:/usr/local/tomcat/webapps tomcat
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值