Docker学习笔记

镜像activemq官网https://hub.docker.com/r/webcenter/activemq

1.镜像拉取

docker pull ubuntu

2.生成容器并启动 run

docker run -it ubuntu /bin/bash

-i 交互,-t终端,/bin/bash打开终端

常用运行参数
–name test 标签, -d后台运行,
-P 将容器内部使用的网络端口随机映射到我们使用的主机上,
-p 81:80 绑定端口(81主机端口,80容器端口),
–restart=always ubuntu开机容器自启动,
/bin/bash -c “/etc/server/service_init.sh start”
作用:让 bash 将一个字符串作为完整的命令来执行

3. 查看所有容器

docker ps -a
docker ps 查看所有运行的容器

4.启动停止的容器

docker start 容器id或名称

5.进入容器

docker exec -it 容器id /bin/bash

6.exit 退出容器

7.停止所有运行的容器 并删除

docker stop $(docker ps -q) &docker rm -f $(docker ps -aq)

8.docker的启动停止与状态

systemctl start docker
systemctl stop docker
systemctl status docker

9.导入,导出容器

docker export 容器id > test.tar
cat test.tar | docker import - test:v1

docker commit ubuntu-cs cs8

commit直接将容器打包成镜像,ubuntu-cs指定容器名称,cs8自定义的镜像名称

10.将文件拷贝到容器内

docker cp test.txt 容器ID:/usr/share/

11.设置自启动或关闭自启动容器

docker update --restart=always 容器名称 开启
docker update 容器ID --restart=no 关闭自启

12.修改docker容器端口映射与文件映射

systemctl stop docker --修改前需停止docker
/var/lib/docker/containers/[容器ID]/下找到hostconfig.json
修改端口映射hostconfig.json

"PortBindings": { "3308/tcp": [{"HostIp":"127.0.0.1","HostPort": "3306"}],"8080/tcp": [{"HostIp":"127.0.0.1","HostPort": "8080"}],"6380/tcp": [{"HostIp":"127.0.0.1","HostPort": "6379"}],"27017/tcp": [{"HostIp":"127.0.0.1","HostPort": "27017"}]}

修改端口映射config.v2.json

"ExposedPorts": {"8080/tcp": {},"3306/tcp": {},"6379/tcp": {},"27017/tcp": {}}

修改目录映射hostconfig.json

"Binds":["/nvs/nginx/conf:/etc/nginx/"]

修改目录映射config.v2.json

"MountPoints":{"/etc/nginx":{"Source":"/nvs/nginx/conf","Destination":"/etc/nginx","RW":true,"Name":"","Driver":"","Type":"bind","Propagation":"rprivate","Spec":{"Type":"bind","Source":"/nvs/nginx/conf","Target":"/etc/nginx/"},"SkipMountpointCreation":false}}

systemctl start docker

13.Dockerfile

FROM centos:latest
MAINTAINER cs
ADD jdk-8u121-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_121
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
CMD java -version

构建镜像:docker build -t wkcto_jdk1.8.0_121 .
.当前运行目录
运行镜像: docker run -d 镜像id

FROM 格式为FROM <image> 或 FROM <image>:<tag>
Dockerfile文件的第一条指令必须为FROM指令。并且,如果在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次);

MAINTAINER 可理解为作者信息

ENV 格式为ENV <key> <value>,指定一个环境变量,会被后续RUN指令使用,
并在容器运行时保持;

ADD 格式为ADD <src> <dest>;
复制指定的<src> 到容器中的<dest>;

EXPOSE 导出端口
格式为 EXPOSE <port> [<port>…]
告诉Docker服务端容器暴露的端口号,供互联系统使用,在启动容器时需要通过-p映射端口,Docker主机会自动分配一个端口转发到指定的端口;

RUN 格式为RUN
RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,当命令较长时可以使用 \ 来换行;

CMD
指定启动容器时执行的命令,每个Dockerfile 只能有一条CMD命令。
如果指定了多条命令,只有最后一条会被执行。
如果用户启动容器时候指定了运行的命令,则会覆盖CMD指定的命令

拓展

ps -ef|grep docker 查看进程
ps -aux|grep 80
lsof -i:80查看端口
kiil -9 PID 杀死进程

在/etc/init.d文件夹中创建mysql启动文件
chmod +x /etc/init.d/mysql
update-rc.d -f mysql defaults 添加服务
update-rc.d -f mysql remove 删除服务

chmod 777 /etc/server/mysql_service.sh 给文件授权

#!/bin/sh是#!/bin/bash的缩减版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值