docker基本用法

安装

  • ubuntu
    https://developer.aliyun.com/mirror/docker-ce

    1
    2
    3
    4
    5
    6
    7
    8
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://m9s2f0vg.mirror.aliyuncs.com"],
    "insecure-registries": ["192.168.5.41:5000"],
    "graph":"/data/docker"
    }
    EOF
  • windows

  • macos
    brew install docker

  • centos8

    1
    2
    3
    4
    5
    [docker-ce-stable]
    name=Docker CE Stable - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/$basearch/stable
    enabled=1
    gpgcheck=0
  • centos7
    https://developer.aliyun.com/mirror/docker-ce

  1. yum源配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    [docker-ce-stable]
    name=Docker CE Stable - $basearch
    baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
    gpgcheck=0

    [base]
    name=CentOS-$releasever - Base - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
    gpgcheck=0

    [updates]
    name=CentOS-$releasever - Updates - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
    gpgcheck=0

    [extras]
    name=CentOS-$releasever - Extras - mirrors.aliyun.com
    baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
    gpgcheck=0
  2. 安装并启动

    1
    2
    3
    4
    5
    6
    7
    yum -y install docker-ce

    # 启动服务
    systemctl start docker

    # 设置开机启动
    systemctl enable docker
  • centos6
    yum源配置
    1
    2
    3
    4
    [dockerproject]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/6/
    gpgcheck=0

yum install docker-engine -y
service docker start
https://blog.csdn.net/weixin_40027906/article/details/85274347

/etc/sysconfig/docker文件,other_args修改
other_args="--insecure-registry 192.168.18.1:5000"

镜像管理

  • 从远程仓库下载镜像
    docker pull registry.aliyuncs.com/helowin/oracle_11g

  • 查看本地镜像
    docker images

  • 删除
    docker rmi #imageid

  • 从容器生成镜像(操作前最好先关闭容器)
    docker commit -p containerId newImageName

  • 导出镜像文件

    1
    2
    3
    4
    5
    6
    docker save -o rocketmq.tar rocketmq 
    # rocketmq.tar 导出的文件名
    # rocketmq 镜像名称
    ```

    - gzip压缩

导出

docker save imageId | gzip > imageName.tar.gz

导入

gunzip -c imageName.tar.gz | docker load

1
2

- 导入镜像文件

docker load –input rocketmq.tar

docker load < rocketmq.tar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22


# 容器管理
- 创建一个容器(镜像如果不存在会自动pull)
docker run -d -p 1521:1521 --name oracle_11g registry.aliyuncs.com/helowin/oracle_11g

- 启动容器
docker start oracle_11g
-p 端口绑定 前边值是主机端口:后边值是容器端口
--name 指定容器名称

- 关闭容器
docke stop oracle_11g

- 进入容器
docker exec -it oracle_11g /bin/bash

- 查看所有容器
docker ps -a

# 上传镜像文件到nexus3仓库
- 登录

docker login 192.168.6.1:5000

1.不支持http请求时
配置 vim /etc/docker/daemon.json
{
“insecure-registries”: [“192.168.6.1:5000” ]
}
2.重启docker服务
service docker restart

1
2

- 准备要上传的镜像文件

1.标记要上传的镜像
docker tag oracle_11g:latest 192.168.6.1:5000/oracle11g:0.1

2.使用容器来创建镜像
docker commit efb37e45c0ab 192.168.6.1:5000/oracle11g:0.2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

- 上传
docker push 192.168.6.1:5000/oracle11g:0.1

# 构建镜像
https://www.runoob.com/docker/docker-dockerfile.html
https://www.cnblogs.com/xiaochangwei/p/8204992.html

# 其他
## save/load/export/import命令区别
save/load操作的是镜像;export/import操作的是容器

# 命令
- 停止所有的容器
`docker stop $(docker ps -aq)`
- 删除所有容器
`docker rm $(docker ps -aq)`

- 删除所有不使用的镜像

docker image prune –force –all
或者
docker image prune -f -a
```