Docker镜像下载并启动:
Docker基础操作(笔记)
查看镜像信息:
Docker基础操作(笔记)
查询官网mysql镜像
Docker基础操作(笔记)
容器基本操作
新建容器
Docker基础操作(笔记)
查看所有容器
Docker基础操作(笔记)
新建容器并启动容器
Docker基础操作(笔记)
docker run命令启动时,dock会在后台进行:
1、检查本地是否存在指定的镜像,不存在就在共有仓库下载。
2、利用镜像创建并启动一个容器
3、分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
4、从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。
5、从地址池中配置一个IP地址给容器
6、执行用户指定的应用程序。
7、执行完毕后容器被终止。

启动一个bash终端,并允许用户交互
Docker基础操作(笔记)

-t
让docker分配一个伪终端,并绑定到容器的标准输出上
-i
让容器的标准输入保持打开
在交互模式下,可以在创建的终端下输入命令,按Ctrl+D或者exit可以退出容器
Docker基础操作(笔记)
容器中,只运行了bash应用,没有运行其他不需要的程序,由于当前只运行了bash程序,当exit后,该容器就会自动处于停止状态

让容器后台运行,守护态(Daemonized)。需要添加  -d  参数
Docker基础操作(笔记)
命令执行完后会返回一个容器的ID
可以通过 sudo docker ps命令查看容器信息
Docker基础操作(笔记)
通过sudo docker logs +ID查看打印信息
Docker基础操作(笔记)
停止容器:sudo docker stop +ID或者Sudo docker kill +ID docker kill命令会直接发送SIGKILL信号来强制终止容器)
Docker基础操作(笔记)
通过docker ps -a -q 来查看终止状态的容器的信息
Docker基础操作(笔记)
重启容器: sudo docker restart +ID
Docker基础操作(笔记)
进入容器:docker attach 命令和docker exec命令或者nsenter工具
1attach
Docker基础操作(笔记)Docker基础操作(笔记)
Docker基础操作(笔记)
Docker attach 命令后面可以+ID(56c)或者name(musing_visvesvaraya)
在使用attach命令时,当多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示,当一个窗口因为命令阻塞时,其他窗口也会 无法执行操作。
2exec命令
    exec命令可以直接在容器内运行命令,例如:在进入(56c)容器时,并启动一个bash
 Docker基础操作(笔记)
3)自定义命令
下载 .bashrc_docker,并将内容放到 .bashrc 中。
$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc
 
这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;而 docker-enter 可以进入容器或直接在容器内执行命令。
$ echo $(docker-pid <container>)
$ docker-enter <container> ls
Docker基础操作(笔记)
Docker基础操作(笔记)
4nsenter工具
Docker基础操作(笔记)
Docker基础操作(笔记)Docker基础操作(笔记)
删除容器:
Sudo docker rm +ID
Docker基础操作(笔记)
删除运行中的容器需要添加 -f 参数
Docker基础操作(笔记)
未添加 -f 参数会报错
Docker基础操作(笔记)
删除成功

导入或导出容器
导出容器
导出容器是指导出一个已经创建的容器到一个文件,不管此容器是否处于运行状态,可以使用docker export命令,该命令格式为docker export CONTAINER
查看所有的容器:
$sudo docker ps -a
Docker基础操作(笔记)
$sudo docker ps 运行中的容器
Docker基础操作(笔记)
分别导出3f1c1e48d58a容器和851320e3a490容器到test_for_run.tar和test_for_stop.tar文件中:
Docker基础操作(笔记)Docker基础操作(笔记)
可以将这些Tar文件传输到其他机器上通过导入命令来实现容器的迁移
导入容器
导出的文件又可以使用docker import命令导入,成为镜像
Docker基础操作(笔记)
配置私有仓库
1、安装运行docker-registry,同时将镜像库挂在到/root/demo目录下
$ docker run -d -p 5000:5000 --restart=always --name test -v /root/demo:/var/lib/registry registry:2
Docker基础操作(笔记)
2、测试
10.128.222.245(本地仓库)
10.128.222.244(测试主机)
a、 从官方docker仓库pull一个busybox镜像
$sudo docker pull busybox
b、 修改镜像的tag
$ docker tag ubuntu 10.128.222.245:5000/busybox:latest
c、 将打了Tag的镜像push到私有仓库(10.128.222.245)
Docker基础操作(笔记)
d、此时会报错

Error response from daemon: Get https://10.128.222.245:5000/v1/_ping: http: server gave HTTP response to HTTPS client

只需要两步即可:
1,Create or modify /etc/docker/daemon.json

[[email protected] ~]# echo '{ "insecure-registries": ["10.128.222.245:5000"] }' > /etc/docker/daemon.json
[[email protected] ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["10.128.222.245:5000"] }

2,重启docker服务
[email protected] ~]# systemctl restart docker
e、查看私有仓库内的镜像
curl 10.128.222.245:5000/v2/_catalog
Docker基础操作(笔记)
Docker基础操作(笔记)
查看私有仓库内镜像的版本号:
查看私有仓库中的镜像Docker基础操作(笔记)
curl registryIP:5000/v2/Imagesname/tags/list
Docker基础操作(笔记)
f、 从私有仓库获取镜像、、
docker pull registryIP:5000/镜像名:版本

注:在启动私有仓库时必须指定挂载点,否则当服务终止时,仓库中的镜像会随着容器的关闭而被清理掉( 17.05.0-ce版本:仓库的默认位置为:/var/lib/registry)


相关文章: