常用命令
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

2909

被折叠的 条评论
为什么被折叠?



