docker命令集锦
sudo docker image ls 查看有哪些image镜像
sudo docker run hello 运行image 删除全部container
docker rm $(docker container ls -aq)
删除全部退出的container
docker rm $(docker container ls -f "status=exited" -q) docker container commit (docker commit)
docker image build (docker build)
docker build -t felix/ubuntu-stress . 创建image docker exec -it fc02b5ea83bc /bin/bash 进入容器中运行命令
docker exec -it fc02b5ea83bc python3
docker exec -it fc02b5ea83bc ip a docker ps -a 查看全部容器 docker inspect fc02b5ea83bc 显示容器完整的信息 docker run -it ubuntu 交互模式下运行ubuntu这个image
# --name 起个别名 --link 链接到别名为test1的容器,之后可以用别名代替ip,比如说用在数据库。
docker run -d --name test2 --link test1 ubuntu /bin/sh -c "while true;do sleep 3600;done" docker logs fc02b5ea83bc 查看容器的日志 docker network inspect fc02b5ea83bc 获取镜像的网络元数据
docker network ls 查看网络
生成新的image建议都通过Dockerfile来生成
例如:
FROM ubuntu
RUN apt-get update
RUN apt-get install -y vim
Dockerfile例子
FROM ubuntu
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress"]
CMD []
docker 命令构建行工具例子
docker network create -d bridge my-bridge # 创建自己的bridge网络
docker run -d --name test3 --network my-bridge ubuntu # 创建时将默认网络bridge链接到自己创建的bridge docker network connect my-bridge test1 # 将test1连接到自己创建的bridge网络
docker创建自己的bridge网络
docker pull nginx 从docker hub中下载nginx
docker run --name web -d -p : nginx 运行并将端口映射到主机的80端口
然后通过ifconfig查到ip地址就能访问了
docker搭建nginx通过端口映射访问
# 部署mysql
docker run -d --name mysql -v mysql-date:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=wordpress mysql
# 部署wordpress
docker run -d -e WORDPRESS_DB_HOST=mysql:3306 --link mysql -p 8080:80 wordpress
docker搭建wordpress和部署
Dockerfile 语法 FROM:
fROM scratch # 制作base image
FROM ubuntu # 使用base image
FROM ubuntu:18.04 尽量使用官方的image作为base image LABEL:
LABEL maintainer="felixwang@qq.com"
LABEL version="1.0"
LABEL description="This is description" Metadata不可少! RUN:
RUN apt-get update && apt-get install -y vim \
python-dev # 反斜杠表示换行
RUN apt-get update && apt-get install -y perl \
pwgen --no-install-recommends && rm -rf \
/var/lib/apt/lists/* # 注意清理缓存 为了美观,复杂的RUN请用反斜杠换行!避免无用分层,合并多条命令成一行! WORKDIR:
WORKDIR /root
WORKDIR /test # 如果没有会自动创建test目录
WORKDIR demo
RUN pwd # 输出应该是 /root/test/demo 用WORKDIR,不要用RUN cd!尽量使用绝对目录! ADD and COPY
ADD hello /
ADD test.tar.gz / # 添加到根目录并解压
WORKDIR /root
ADD HELLO test/ # /root/test/hello
COPY hello test/ 大部分情况,copy优于ADD!ADD除了COPY还有额外功能(解压!)
添加远程文件/目录请使用curl或者wget! ENV:
ENV MYSQL_VERSION 5.6 #设置常量
RUN apt-get install -y mysql-server="${MYSQL_VERSION}" \
&& rm -rf /var/lib/apt/lists/* # 引用常量 尽量使用ENV增加可维护性 VOLUME and EXPOSE:
后面补充 CMD and ENTRYPOINT:
后面补充 RUN:执行命令并创建新的Image Layer
CMD:设置容器启动后默认执行的命令和参数
ENTRYPOINT:设置容器启动时运行的命令 CMD:容器启动时默认执行的命令
如果docker run指定了其他命令,CMD命令会被忽略
如果定义了多个CMD,只有最后一个会执行 ENTRYPOINT:让容器以应用程序或者服务的形式运行
不会被忽略,一定会执行
三种网络结构:
docker bridge
docker none
docker host
数据持久化-方式一
docker run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql 安装并初始化mysql
docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql 指定数据存取目录
docker volume ls 查看存在的十九画数据库
docker volume rm 926c67936e2e69d736b9649416c516cf38e93b4f053ee73b2dff9c1ce3148ba8 删除数据库
然后通过docker exec -it mysql2 /bin/bash 进入查看
数据持久化-方式二 bind mounting
docker run -d -v $(pwd):/usr/share/nginx/html -p 80:80 --name web my-nginx 也可以使用-v 然后通过地址映射进行文件同步
docker操作小技巧:不用每次执行命令都添加sudo
sudo groupadd docker
sudo gpasswd -a felix docker 将当前用户加入到组
sudo service docker restart 重启docker服务
然后退出shell,重新连接,这回执行docker命令可以不用加上sudo
docker命令集锦的更多相关文章
- Docker命令学习
今天更换腾讯云系统的时候发现了多了个CoreOS,据说是专门运行docker的轻量系统,顺便学习一下docker命令. 1. docker version 显示 Docker 版本信息. 2. doc ...
- Docker命令详解
Docker命令详解 最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...
- Docker入门教程(六)另外的15个Docker命令
Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...
- 安装Docker和下载images镜像和常用Docker命令
我的是centos7,也会6的方法: $sudo yum install docker 直接yum安装contos7使用centos6.5先获取epel源并 启动Docker,并注册开机服务 [roo ...
- Windows命令行命令集锦
原文:Windows命令行命令集锦 转自:http://www.me2wg.com/bbs/forum.php?mod=viewthread&tid=15830 winver--------- ...
- docker命令和后台参数
Docker官方为了让用户快速了解Docker,提供了一个 交互式教程 ,旨在帮助用户掌握Docker命令行的使用方法. Docker 命令行 下面对Docker的命令清单进行简单的介绍,详细内容在后 ...
- 掌握Docker命令
1.管理镜像命令 获取镜像 docker push ubuntu:14:04 查看镜像列表 docker images 重命名image docker tag IMAGE-NAME NEW-IMAGE ...
- docker命令不需要敲sudo的方法
由于docker daemon需要绑定到主机的Unix socket而不是普通的TCP端口,而Unix socket的属主为root用户,所以其他用户只有在命令前添加sudo选项才能执行相关操作. 如 ...
- 从开发到部署会用到的 Docker 命令
本文的目的是理解容器开发在目标环境中部署的端到端流程,并列出这些操作所需的 Docker 命令.如果有任何Docker问题,请移步到最新最热的技术社区 IT帮 itbang.me 提问,短信通知专家来 ...
随机推荐
- 利用requests提交相同名称数据的处理方法
#字典键不能重复 data={ boardid' : boardid, 'divids[ ]' : '0' , 'divids[ ]' : '1' , 'divids[ ]' : '2' , } #这 ...
- Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?
Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用? 2019年07月06日 19:30:55 AI科技大本营 阅读数 675 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- C#面向对象21 接口
接口的规范: 1.接口是一种规范.只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员. 2.为了多态,接口不能被实例化,接口不new(不能创建对象) 3.接口中的成员不能加“访问修饰符”, ...
- c++ 性能优化策略
c++ 性能优化策略 作者:D_Guco 来源:CSDN 原文:https://blog.csdn.net/D_Guco/article/details/75729259 1 关于继承:不可否认良好的 ...
- 关于VSS(Volume Shadow Copy Service)一
在开发windows VSS应用程序时 我们应该先下载相关SDK,微软描述如下 When developing your own VSS application, you should observe ...
- LeetCode 腾讯精选50题--有效的括号
根据题意,第一反应就是使用栈,左右括号相匹配,则将左括号出栈,否则将左括号入栈. 这里我用数组配合“指针”模拟栈的入栈与出栈操作,初始时指针位置指向0,表示空栈,凡遇上左括号则直接入栈,若遇上有括号, ...
- JS-逻辑运算符的与,或,非
JS-逻辑运算符的与,或,非 1.非 所谓非,就是取反,非真即假,非假即真. 非运算符不仅仅只能用于布尔值,其他数据类型也是可以的,如下: 1.如果操作数是一个对象,返回false 2.如果操作数是一 ...
- mongodb启用auth,使用密码登录
更新操作: db.users.update({'currentVersion':3},{$set:{'currentVersion':5}}) 首先安装下载(略过) mongod 启动服务,有多重启动 ...
- SQL语句复习【专题四】
SQL语句复习[专题四] 多表查询 sql 92多表查询 sql92.sql99 标准--查询所有员工的姓名,部门编号,部门名称select * from empselect * from dept- ...
- 洛谷 P2939 [USACO09FEB]改造路Revamping Trails
题意翻译 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 ...