docker启动命令
systemctl命令是系统服务管理器指令
启动docker:
systemctl start docker
停止docker:
systemctl stop docker
重启docker:
systemctl restart docker
查看docker状态:
systemctl status docker
开机启动:
systemctl enable docker
查看docker概要信息
docker info
查看docker帮助文档
docker ‐‐help
1、创建docker容器
命令: docker run ubuntu:15.10 /bin/echo "Hello world"
docker: Docker 的二进制执行文件。
run: 与前面的 docker 组合来运行一个容器。
ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo "Hello world": 在启动的容器里执行的命令
以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。
2、交互式容器
通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:
docker run -itd --name ubuntu-test ubuntu:15.10 /bin/bash
-t: 在新容器内指定一个伪终端或终端。
-i: 允许你对容器内的标准输入 (STDIN) 进行交互。
-d: 让容器在后台运行。
--name: 容器的名称。
3、常用命令
docker ps :查看正在运行的容器
docker ps - a :查看所有的容器
输出详情介绍:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
docker pull ubuntu:载入镜像
docker rename 【原名称/id】【新名称】:修改容器名称
docker stop 【容器名/id】:停止容器
docker start 【容器名/id】:启动容器
docker restart 【容器名/id】:重启容器
docker exec -it 【容器名/id】 /bin/bash:进入容器
docker rm -f 【容器名/id】:删除容器
docker container prune:删除所有处于终止状态的容器
4、创建镜像
docker commit -m="描述信息" -a="作者名" 【容器名/id】【镜像名称】:【标签】
-m: 提交的描述信息
-a: 指定镜像作者
5、容器连接
docker network create -d bridge(连接模式) 【连接名称】
-d:参数指定 Docker 网络类型,有 bridge、overlay。
6、问题
docker创建容器未配置时间的时候,容器的时间与主机的时间不一致,比如UTC和CST相差8小时,换句话来说就是容器时间与北京时间相差8个小时。
这里采取的方法是在Dockerfile文件里进行时间设置:
# 添加时区环境变量,亚洲,上海
ENV TimeZone=Asia/Shanghai
# 使用软连接,并且将时区配置覆盖/etc/timezone
RUN ln -snf /usr/share/zoneinfo/$TimeZone /etc/localtime && echo $TimeZone > /etc/timezone
也可以在运行容器时进行配置:
-v /etc/localtime:/etc/localtime
# 实例1
docker run -p 3306:3306 --name mysql -v /etc/localtime:/etc/localtime
# 实例2
docker run \
--detach \
--restart always \
--name 'scribe' \
--publish 11315:11315 \
--mount type=bind,source=/data/gop/,destination=/data/gop/,consistency=consistent \
-v /etc/localtime:/etc/localtime \
wsgzao/facebook-scribe
7、docker打包jar包镜像
先创建一个文件夹,在文件夹中上传所需jar包,使用 vim 命令创建一个Dockerfile文件,以下是dockerfile文件内容:
### 引入jdk
FROM openjdk:8
###设置作者
MAINTAINER Ruide
###设置工作文件夹
WORKDIR /moyu-sso
###将jar包复制到对应文件夹中
COPY moyudemo-1.0.0-SNAPSHOT.jar /moyu-sso/moyudemo-1.0.0-SNAPSHOT.jar
###设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone \
RUN bash -c 'touch /moyu-sso/moyudemo-1.0.0-SNAPSHOT.jar'
###运行命令
ENTRYPOINT ["java","-jar","moyudemo-1.0.0-SNAPSHOT.jar"," > /moyu-sso/logs/info.log 2>&1 &"]
###暴露端口
EXPOSE 8082
编辑完Dockerfile之后,需要构建镜像
docker build -t 【镜像名】 .
构建完镜像后创建一个容器并启动:
docker run -it -p 8080:8080 --name 【容器名】 -d 【镜像名】