docker入门

常用命令

docker
# 启动docker
sudo service docker start
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
image
# 列出有镜像
docker images
# 搜索镜像(https://hub.docker.com/)
docker search hello-world
# 拉取镜像
docker image pull library/hello-world
# 删除镜像
docker rmi hello-world
docker image rm 镜像id/镜像ID
container
# 创建容器(-d参数为后台运行)
docker run [选项参数] 镜像名 [命令]
# 停止一个已经在运行的容器
docker container stop 容器名或容器id
# 启动一个已经停止的容器
docker container start 容器名或容器id
# 进入容器
 docker attach 44fc0f0582d9  (退出后停止运行)
 docker exec -it 775c7c9ee1e1 /bin/bash (退出不停止) 
 ssh(不建议)
# 查看容器
sudo docker ps (-a参数表示包括未运行的容器)
# kill掉一个已经在运行的容器
docker container kill 容器名或容器id
# 删除容器
docker rm -f 1e560fca3906
docker container rm 容器名或容器id
导入导出镜像

涉及的命令有export、import、save、load

1.save
docker save -o nginx.tar nginx:latest
docker save > nginx.tar nginx:latest
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
2.load
docker load -i nginx.tar
docker load < nginx.tar
其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
3.export
导出容器快照
docker export -o nginx-test.tar nginx-test
docker export 1e560fca3906 > ubuntu.tar
其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
4.import
导入容器快照
docker import nginx-test.tar nginx:imp
cat nginx-test.tar | docker import - nginx:imp
5.区别
export命令导出的tar文件略小于save命令导出的
基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。

当我们从 docker 镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

1、从已经创建的容器中更新镜像,并且提交这个镜像
2、使用 Dockerfile 指令来创建一个新的镜像

docker安装

1.安装包允许apt通过HTTPS使用仓库
sudo dpkg --configure -a
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
2.添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
3.设置Docker稳定版仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
4.安装最新版本Docker CE(社区版)
sudo apt-get install docker-ce
5.查看安装Docker的版本
docker --version
6.检查Docker CE 是否安装正确
sudo docker run hello-world

制作镜像

1.拉基础镜像:
sudo docker pull ubuntu:18.04
2.使用ubuntu:18.04镜像创建一个容器,以命令行模式进入该容器
docker run -it ubuntu:18.04 /bin/bash
3.在容器中操作
(包括apt-get update 命令进行更新,安装依赖等)
4.退出容器,记录id
exit
5.保存在基础镜像中所有的更改,并生成新的镜像
sudo docker commit (-m "carrefour" -a "shichao") 1683ab3e55f0 shichao/ubuntu:v1
 # 参数解释如下:
 -m: 提交的描述信息
 -a: 指定镜像作者
 1683ab3e55f0:容器 ID
 shichao/ubuntu:v1: 目标镜像名:版本tag
6.提交镜像到仓库:(宿主机终端)
 # 登录 https://harbor.arfa.wise-paas.com 与仓库建立联系
 # -u 后是用户名
 # -p 后是密码
 sudo docker login -u **.chang -p Wen** https://harbor.arfa.***.com
 # 本地镜像 shichao/ubuntu:v5 与仓库中 carrefour:v1.0.0 建立对应关系
 sudo docker tag shichao/ubuntu:v5 harbor.arfa.***.com/microservice/carrefour:v1.0.0
 # push 到仓库
 sudo docker push harbor.arfa.***.com/microservice/carrefour:v1.0.0

进入容器 id 为 1683ab3e55f0 的容器

sudo docker exec -it 1683ab3e55f0 /bin/bash

容器中安装依赖

 # 拷贝依赖到容器镜像中
 sudo docker cp  /home/requirements.txt 061095ea358c:/home/requirements.txt
 # 容器内用anaconda自带的 pip 安装
 root@061095ea358c:/home/files# pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值