docker 基础命令集合

本文以一个nginx容器:8c9ca4d17702 为例做的一些操作

image 镜像

// 从 hub.docker.com 下载镜像
docker pull nginx

// 在现有容器修改并制作一个新的image,名字是image_new_name
docker commit -m "修改并提交一个新的版本" 8c9ca4d17702 image_new_name

// 列出本地所有的容器
docker images

// 删除某个镜像
docker rmi 8c9ca4d17702 ...其他镜像id

基本

// 以daemon方式运行nginx,并且把nginx的80端口映射到本机80端口
docker run -p 8080:80 -d nginx

// 运行容器并进入容器
docker run -it -p 8080:80 nginx /bin/bash

// 停止指定的容器
docker stop 8c9ca4d17702

container 容器

// 当前正在运行的容器
docker ps 

// 运行过的容器历史
docker ps -a

// 删除已经结束的容器
docker rm 8c9ca4d17702 ...其他容器id

// 宿主机复制文件到指定的docker容器指定的目录中
docker cp index.html 8c9ca4d17702://usr/share/nginx/html

// 添加文件
docker add 

// 进入到容器中
docker exec -it 8c9ca4d17702 /bin/bash

// 退出当前正在运行的容器
ctrl + d

Dockerfile

构建镜像

// 创建一个docker
FROM ubuntu
MAINTAINER your_user_name
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /var/www/html
ENV MY_ENV=develop
USER mysql
VOLUME $PWD/code:/var/www/html
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
EXPOSE 80
CMD echo "hello word"

// 镜像分层;每一行命令就是一层

// 配置构建新镜像时需要忽略的文件/目录
.dockerignore

// 把本地的./目录下,除了.dockerignore中忽略的文件,其他所有文件都打包成一个镜像,名字是new_docekr_name
docker build -t new_docekr_name ./

Volume

独立于容器之外的持久化存储;容器间共享数据;卷挂载

// 展示容器的所有信息
docker inspect nginx

// 展示镜像的分层信息
docker history nginx

// 进入Docker Host虚拟机
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

// 把当前目录下的code目录映射到容器中(适合本地开发)
docker run -v $PWD/code:/var/www/html nginx

// 把其中一个容器当做存储,挂载到其他运行的容器当中
// 1、先创建一个存储容器
docker create -v $PWD/data:/var/mydata --name data_container ubuntu
// 2、其他容器运行时指定要挂载的容器
docker run --volumes-from data_container mysql

registry 仓库

docker search nginx
docker pull nginx
docker push nginx

// 在现有的镜像新建一个自己的镜像,打一个tag
docker tag nginx my_change_ngxin

// 需要登录
docker login 

// 把自己的镜像推送到远程
docker push my_change_ngxin

composer 多容器编排

docker-composer 工具,解析 docker-compose.yml 文件
以一个典型的应用为例:nginx-php-mysql,三个容器组合成一个应用

version: '2'

networks:
	my_network_name:

services:
	nginx:
		build: ./nginx
		network:
			- my_network_name
		depends_on:
			- php
		ports:
			- "80:80"
	
	php:

	mysql:
		image: "mysql:5.7.15"
		network :
			- my_network_name
		environment:
			MYSQL_ROOT_PASSWORD: xx
			MYSQL_USER: mysql
			MYSQL_PASSWORD: xx
		volumes:
			- $PWD/data:/var/lib/mysql
		ports:
			- "3306:3306"
// 拉起所有服务
docker-compose up -d

// 停掉所有服务
docker-compose stop

// 清掉构建的容器
docker-compose rm

// 重新构建服务
docker-compose build

// 所有容器的日志
docker-compose logs

// 列出当前所有容器
docker-compose ps
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值