镜像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的缩减版