docker入门

Docker下载、安装

ubuntu系统

1.查看安装的所有软件 dpkg -l

2.查看软件安装的路径 dpkg -L xx

安装方式

  1. apt install docker.io 过时的安装方式 官方不推荐安装docker.io但是能用就好

  2. 从repository安装比较繁琐,可以按文档操作

  3. 也可以从官网下载安装包

查看docker服务的状态

systemctl status docker

mark@ocarina:~$ systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-01-24 20:06:12 CST; 15min ago
     Docs: https://docs.docker.com
 Main PID: 14293 (dockerd)
    Tasks: 31
   CGroup: /system.slice/docker.service
           ├─14293 /usr/bin/dockerd -H fd://
           └─14321 docker-containerd --config /var/run/docker/containerd/containerd.toml

基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

镜像类似java的class

容器相当于由class创建的对象

仓库相当于jar包,用于保存一组镜像

Image

一个只读的模板 ,可创建多个容器

查看镜像

docker images

下载镜像

docker pull image

# 从网易云拉取nginx镜像
mark@ocarina:/etc/docker$ sudo docker pull hub.c.163.com/public/nginx:1.2.1
1.2.1: Pulling from public/nginx
f46924f139ed: Pull complete 
a3ed95caeb02: Pull complete 
4849cac99801: Pull complete 
ff472075fa83: Pull complete 
Digest: sha256:ef9bd0fa2c97429562ecc209772ef07ebb9dfd66dc310ea02739d1f026dbf7b8
Status: Downloaded newer image for hub.c.163.com/public/nginx:1.2.1

删除镜像

docker rmi image_id

docker rmi image:tag

导出镜像

docker save image:tag > /path/to/save/xx.tar.gz

导入镜像

docker load < /path/to/save/xx.tar.gz

创建容器

docker run -it --name my-app image:tag /bin/bash
docker run -d --name my-app image:tag

Container

类似一个虚拟机

可以看做简易的linux运行环境(包含root用户权限,运行空间、网络、用户空间等)+其中运行的应用程序

docker利用容器来运行应用

container是从image模板创建出来的运行实例

容器之间相互隔离、互不影响

查看容器

docker ps -a

mark@ocarina:~$ sudo docker ps -a
[sudo] mark 的密码: 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
7df7b41ba0f5        2dc68ff797db        "/bin/sh -c '/etc/in…"   13 minutes ago      Up 13 minutes       22/tcp, 80/tcp, 443/tcp   unruffled_proskuriakova
60e77b542b8d        2dc68ff797db        "/bin/sh -c '/etc/in…"   18 minutes ago      Up 18 minutes       22/tcp, 80/tcp, 443/tcp   thirsty_kepler

启动容器

mark@ocarina:~$ sudo docker start 7df7b41ba0f5
7df7b41ba0f5

停止容器运行

mark@ocarina:~$ sudo docker stop 7df7b41ba0f5
7df7b41ba0f5

删除容器

mark@ocarina:~$ sudo docker rm 7df7b41ba0f5
7df7b41ba0f5

进入容器

mark@ocarina:~$ sudo docker exec -it 60e77b542b8d /bin/bash
[sudo] mark 的密码: 
root@60e77b542b8d:/# ls
bin  boot  dev	etc  home  lib	lib64  media  mnt  opt	proc  root  run  sbin  selinux	srv  sys  tmp  usr  var

cat /etc/hosts  #查看ip地址

将文件放进docker容器

docker cp xx.war container_id:/usr/loal/tomcat/webapp

Registry

注册器(仓库注册服务器 一个网站 包含多个仓库 每个仓库有多个image)

是集中存放镜像文件的场所

有public registry 也有private registry

一个registry中有多个repository

一个repository中会有多个不同tag的image

centos的仓库中有tag为6或7的image 代表centos6或centos7

原文地址:https://www.cnblogs.com/endurance9/p/10317272.html