查看docker信息(version、info)
1 | # 查看docker版本 |
对image的操作(search、pull、images、rmi、history)
1 | # 检索image |
启动容器(run)
docker容器可以理解为在沙盒中运行的进程。这个沙盒包 含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你需要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的唯一进程,所以当该进程结束的时候,容 器也会完全的停止。
1
2
3
4
5
6
7
8
9
10
11 # 在容器中运行"echo"命令,输出"hello word"
docker run image_name echo "hello word"
# 交互式进入容器中
docker run -i -t image_name /bin/bash
# 在容器中安装新的程序
docker run image_name apt-get install -y app_name
# 在一次进刚才进入的容器
docker exec -i -t [容器ID]
run 参数
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- –name=”nginx-lb”: 为容器指定一个名称;
- –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h “mars”: 指定容器的hostname;
- -e username=”ritchie”: 设置环境变量;
- –env-file=[]: 从指定文件读入环境变量;
- –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- –link=[]: 添加链接到另一个容器;
- –expose=[]: 开放一个端口或一组端口;
查看容器(ps)
1 | # 列出当前所有正在运行的container |
保存对容器的修改(commit)
当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。
1
2 # 保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message
docker commit ID new_image_name
对容器的操作(rm、stop、start、kill、logs、diff、top、cp、restart、attach)
1 | # 删除所有容器 |
attach命令允许你查看或者影响一个运行的容器。你可以在同一时间attach同一个容器。你也可以从一个容器中脱离出来,是从CTRL-C。
保存和加载镜像(save、load)
当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。
1
2
3
4
5
6
7
8
9
10
11 # 保存镜像到一个tar包; -o, --output="" Write to an file
docker save image_name -o file_path
# 加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file
docker load -i file_path
# 机器a
docker save image_name > /home/save.tar
# 使用scp将save.tar拷到机器b上,然后:
docker load < /home/save.tar
登录registry server(login)
1 | # 登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Usernamedocker login |
发布image(push)
1 | # 发布docker镜像 |
根据Dockerfile 构建出一个容器
1 | #build |
安装的docker服务器能访问harbor
1 | vi /etc/docker/daemon.json #编辑此文件 |
spring boot Dockerfile通用模板
1 |
|
设置docker开机启动
1 | chkconfig docker on #开机启动 |
docker 运行mysql
1 | docker pull docker.io/mysql #拉取镜像 |
查看容器ip地址
1 | docker inspect 容器 | grep "IPAddress" |
部署Rancher
1 | sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable #安装rancher服务器 |
删除所有容器
1 | # 删除所有容器 |
监控容器里的spring boot 应用
1 | java -Xmx1g -Djava.rmi.server.hostname=192.168.10.112 -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.rmi.port=9090 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -jar /home/work/project.jar |