Docker

Docker

1.容器使用
docker run 命令
在容器内运行一个应用程序
runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

各个参数解析:

  • docker: Docker 的二进制执行文件。
  • run: 与前面的 docker 组合来运行一个容器。
  • ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
  • /bin/echo “Hello world”: 在启动的容器里执行的命令
运行交互式的容器

docker 的两个参数 -i -t,让 docker 运行的容器实现**“对话”**的能力

runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#

各个参数解析:

-t:在新容器内指定一个伪终端或终端。

-i:允许你对容器内的标准输入 (STDIN) 进行交互。

启动容器(后台模式)
runoob@runoob:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
命令
1.帮助命令
docker command --help
2.查看容器
docker ps -a
2.查看log
docker logs [CONTAINER ID]/[NAME]
-f 
4.启动容器
docker start [CONTAINER ID]/[NAME]
5.停止容器
docker stop [CONTAINER ID]/[NAME]
6.后台运行
docker run -itd --name ubuntu-test ubuntu /bin/bash
7.重启容器
docker restart [CONTAINER ID]/[NAME]
8.进入容器
docker attach [CONTAINER ID]/[NAME]
docker exec -it [CONTAINER ID]/[NAME] /bin/bash  [推荐]
9.导出和导入容器
docker export [CONTAINER ID] > ubuntu.tar
cat docker/ubuntu.tar | docker import - test/ubuntu:v1
docker import http://example.com/exampleimage.tgz example/imagerepo
10.删除容器
docker rm -f [CONTAINER ID]
11.运行一个 web 应用
docker run -d -P training/webapp python app.py
docker run -d -p 5000:5000 training/webapp python app.py
12.查看网络端口
docker port [CONTAINER ID]/[NAME]
13.移除WEB应用容器
docker rm [CONTAINER ID]/[NAME]
2.镜像使用
1.列出所有镜像
docker images
2.获取一个新的镜像
docker pull 
3.查找镜像
docker search 
4.删除镜像
docker rmi 
5.创建镜像
(1)更新镜像
容器内使用 apt-get update
docker commit -m="has update" -a="runoob" [CONTAINER ID] runoob/ubuntu:v2
(2)构建镜像
cat Dockerfile 
docker build 
6.设置镜像标签
ocker tag [CONTAINER ID] runoob/centos:dev

3.容器连接
1.容器命名
docker -name
2.新建网络
docker network create -d bridge test-net
3.连接容器
docker run -itd --name test1 --network test-net ubuntu /bin/bash
4.配置 DNS
 /etc/docker/daemon.json 
 {
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}
5.手动指定容器的配置
docker run -it --rm -h host_ubuntu  --dns=114.114.114.114 --dns-search=test.com ubuntu
--rm:容器退出时自动清理容器内部的文件系统。
-h HOSTNAME 或者 --hostname=HOSTNAME: 设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts。
--dns=IP_ADDRESS: 添加 DNS 服务器到容器的 /etc/resolv.conf 中,让容器用这个服务器来解析所有不在 /etc/hosts 中的主机名。
--dns-search=DOMAIN: 设定容器的搜索域,当设定搜索域为 .example.com 时,在搜索一个名为 host 的主机时,DNS 不仅搜索 host,还会搜索 host.example.com。
4.Dockerfile
FROM
构建镜像基于哪个镜像
MAINTAINER
镜像维护者姓名或邮箱地址
RUN
构建镜像时运行的指令
CMD
运行容器时执行的shell环境
VOLUME
指定容器挂载点到宿主机自动生成的目录或其他容器
USER
为RUN、CMD、和 ENTRYPOINT 执行命令指定运行用户
WORKDIR
为 RUN、CMD、ENTRYPOINT、COPY 和 ADD 设置工作目录,就是切换目录
HEALTHCHECH
健康检查
ARG
构建时指定的一些参数
EXPOSE
声明容器的服务端口(仅仅是声明)
ENV
设置容器环境变量
ADD
拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压
COPY
拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能
ENTRYPOINT
运行容器时执行的shell命令
route add -p 172.17.0.0  mask 255.255.0.0  192.168.1.15[linux ip]
Docker网络配置
docker的网络(bridge,host,none)
docker network ls
curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker run -itd --name nginx-test --network my_net1 -p  8081:80 -v /usr/local/nginx/www:/usr/share/nginx/html -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/conf.d:/etc/nginx/conf.d -v  /usr/local/nginx/logs:/var/log/nginx  nginx
docker run -itd --name tomcat-test --network my_net1 -p  8081:8080 -v /usr/tomcat/tomcat1/webapps:/usr/local/tomcat/tomcat1/webapps tomcat 
docker run -it -p 3306:3306 --name mysql01 --network my_net1 -v /usr/local/mysql_data/conf:/etc/mysql/conf.d -v /usr/local/mysql_data/data:/var/lib/mysql -v /usr/local/mysql_data/logs:/logs -e MYSQL_ROOT_PASSWORD=123456 -d mysql
docker run -it --privileged=true --network my_net1 --name redis-test -p 6379:6379 -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis:4.0 redis-server /etc/redis/redis.conf --appendonly yes
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值