sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Docker 官方 GPG 秘钥
#curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Docker 阿里 GPG 秘钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Docker 官方源
#sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Docker 阿里源
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
root@ubuntu:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-15 09:52:38 CST; 1h 22min ago
Docs: https://docs.docker.com
Main PID: 19134 (dockerd)
Tasks: 18
Memory: 75.6M
CGroup: /system.slice/docker.service
└─19134 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
sudo systemctl start docker
root@ubuntu:~# docker version
Client:
Version: 19.03.6
API version: 1.40
Go version: go1.12.10
Git commit: 369ce74a3c
Built: Fri Feb 28 23:26:00 2020
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 19.03.6
API version: 1.40 (minimum version 1.12)
Go version: go1.12.10
Git commit: 369ce74a3c
Built: Wed Feb 19 01:04:38 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.3-0ubuntu1~19.10.2
GitCommit:
runc:
Version: spec: 1.0.1-dev
GitCommit:
docker-init:
Version: 0.18.0
GitCommit:
root@ubuntu:~# docker --version
Docker version 19.03.6, build 369ce74a3c
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ubuntu:~#
sudo systemctl enable docker
创建或者修改 Docker 的 /etc/docker/daemon.json
sudo gedit /etc/docker/daemon.json
{
"registry-mirrors": [
"https://dockerhub.azk8s.cn",
"https://reg-mirror.qiniu.com",
"https://quay-mirror.qiniu.com"
],
"exec-opts": [ "native.cgroupdriver=systemd" ]
}
service docker restart
sudo systemctl daemon-reload
sudo systemctl restart docker
root@ubuntu:/etc/docker# docker info | grep Cgroup
Cgroup Driver: systemd
WARNING: No swap limit support
root@ubuntu:/etc/docker#
docker search 镜像名称
root@ubuntu:~# docker search redis
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redis Redis is an open source key-value store that… 8028 [OK]
bitnami/redis Bitnami Redis Docker Image 141 [OK]
sameersbn/redis 79 [OK]
grokzen/redis-cluster Redis cluster 3.0, 3.2, 4.0 & 5.0 65
rediscommander/redis-commander Alpine image for redis-commander - Redis man… 37 [OK]
kubeguide/redis-master redis-master with "Hello World!" 31
redislabs/redis Clustered in-memory database engine compatib… 24
oliver006/redis_exporter Prometheus Exporter for Redis Metrics. Supp… 21
redislabs/redisearch Redis With the RedisSearch module pre-loaded… 21
arm32v7/redis Redis is an open source key-value store that… 21
bitnami/redis-sentinel Bitnami Docker Image for Redis Sentinel 12 [OK]
webhippie/redis Docker images for Redis 11 [OK]
redislabs/redisgraph A graph database module for Redis 10 [OK]
s7anley/redis-sentinel-docker Redis Sentinel 9 [OK]
arm64v8/redis Redis is an open source key-value store that… 9
insready/redis-stat Docker image for the real-time Redis monitor… 9 [OK]
redislabs/redismod An automated build of redismod - latest Redi… 7 [OK]
centos/redis-32-centos7 Redis in-memory data structure store, used a… 5
redislabs/redisinsight RedisInsight - The GUI for Redis 5
circleci/redis CircleCI images for Redis 4 [OK]
clearlinux/redis Redis key-value data structure server with t… 2
tiredofit/redis Redis Server w/ Zabbix monitoring and S6 Ove… 1 [OK]
wodby/redis Redis container image with orchestration 1 [OK]
runnable/redis-stunnel stunnel to redis provided by linking contain… 1 [OK]
xetamus/redis-resource forked redis-resource 0 [OK]
docker pull 镜像名称:版本
# 不指定版本会下载最新版本
docker pull 镜像名称:版本
root@ubuntu:~# docker pull redis
Using default tag: latest
latest: Pulling from library/redis
8559a31e96f4: Pull complete
85a6a5c53ff0: Pull complete
b69876b7abed: Pull complete
a72d84b9df6a: Pull complete
5ce7b314b19c: Pull complete
04c4bfb0b023: Pull complete
Digest: sha256:800f2587bf3376cb01e6307afe599ddce9439deafbd4fb8562829da96085c9c5
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 4cdbec704e47 2 weeks ago 98.2MB
mysql latest 9228ee8bac7a 2 weeks ago 547MB
docker rmi 镜像ID
如果该镜像有运行的镜像则不能删除,可以先停止容器,再删除
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 4cdbec704e47 2 weeks ago 98.2MB
mysql latest 9228ee8bac7a 2 weeks ago 547MB
a273218159/zentao latest c5b4be595f8f 21 months ago 1.15GB
root@ubuntu:~# docker rmi c5b4be595f8f
Untagged: a273218159/zentao:latest
Untagged: a273218159/zentao@sha256:590fca6580fb1b7e736db35cc12f9c109b5cf85f1142368a7bcc8cab0e74bf81
Deleted: sha256:c5b4be595f8f24ce5a2b78f0aae36893d2fc8884fe12f8d1b20a7c0198c29cdc
Deleted: sha256:546a12bcbdf971a1af11d42c6b46bbdc5659d54749cfe8e35b50c413f9a59e63
Deleted: sha256:100abf6963bf685778862c64c89d0aa535a958c34457b49aacf3b5c40bbe777f
Deleted: sha256:bcc97fbfc9e1a709f0eb78c1da59caeb65f43dc32cd5deeb12b8c1784e5b8237
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 4cdbec704e47 2 weeks ago 98.2MB
mysql latest 9228ee8bac7a 2 weeks ago 547MB
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
docker start 容器名
docker start 容器名
root@ubuntu:~# docker start mysql8
mysql8
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a995fe3a5c12 mysql:latest "docker-entrypoint.s…" 2 months ago Up 6 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
root@ubuntu:~#
docker stop 容器名
docker stop 容器名
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a995fe3a5c12 mysql:latest "docker-entrypoint.s…" 2 months ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
root@ubuntu:~# docker stop mysql8
mysql8
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ubuntu:~#
docker restart 容器名
docker restart 容器名
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@ubuntu:~# docker restart mysql8
mysql8
root@ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a995fe3a5c12 mysql:latest "docker-entrypoint.s…" 2 months ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
root@ubuntu:~#
docker rm 容器名
docker rm 容器名
root@ubuntu:~# docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57dcd97fd4e5 4cdbec704e47 "docker-entrypoint.s…" 2 months ago Exited (0) 2 months ago redis
a995fe3a5c12 mysql:latest "docker-entrypoint.s…" 2 months ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
root@ubuntu:~#
方法 | 作用 | 作用对象 | 能否保留数据 | 导出的内容 | 主要的应用场景 |
---|---|---|---|---|---|
export & import | 用来将container的文件系统进行打包的 | container | 不可以 | 一个Linux系统的文件目录 | 制作基础镜像 |
save & load | 用来将一个或者多个image打包 | image(container实际上也可以,但其实际上作用的是container下的image) | 可以 | 一个分层的文件系统(相对于前者比较大,因为多层文件系统中可能有东西是重合的) | 打包多个镜像 |
docker commit -a "hyacinth" -m "MySQL数据库容器迁移" mysql8 mysql:V8.0
docker commit --author "hyacinth" --message "MySQL数据库容器迁移" mysql8 mysql:V8.0
参数 | 说明 |
---|---|
-a/–author | 作者信息 |
-m/–message | 备注信息 |
mysql8 | 需要迁移的容器名称(正在运行的容器) |
mysql:V8.0 | 镜像名称和镜像标签 |
注:如果容器有挂载外部文件,如果想保留挂载文件的数据则需要把所有的挂载文件复制到新的环境,在恢复容器的时候要 -v 指定挂载文件
root@ubuntu:~# docker inspect --format='{{.Mounts}}' mysql8
[{volume 55485a1d2d9cab81f130a7b64755fc593e28fadf4989f27abb74a4cccb4c73c4 /var/lib/docker/volumes/55485a1d2d9cab81f130a7b64755fc593e28fadf4989f27abb74a4cccb4c73c4/_data /var/lib/mysql local true }]
root@ubuntu:~#
root@ubuntu:/home/jack/docker# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a995fe3a5c12 mysql:latest "docker-entrypoint.s…" 2 months ago Up 16 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
root@ubuntu:/home/jack/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 4cdbec704e47 2 months ago 98.2MB
mysql latest 9228ee8bac7a 2 months ago 547MB
root@ubuntu:/home/jack/docker#
root@ubuntu:/home/jack/docker# docker commit -a "hyacinth" -m "MySQL数据库容器迁移" mysql8 mysql:V8.0
sha256:10a78039733080095eed5458bcbef77e4ec5e0304c0771fedd5ddebb98c63b13
root@ubuntu:/home/jack/docker# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql V8.0 10a780397330 6 seconds ago 547MB
redis latest 4cdbec704e47 2 months ago 98.2MB
mysql latest 9228ee8bac7a 2 months ago 547MB
root@ubuntu:/home/jack/docker#
docker save -o mysql:V8.0 > mysql.tar
参数 | 说明 |
---|---|
mysql:V8.0 | 镜像名称和镜像标签 |
mysql.tar | 外部静态文件文件名称(当面Shell控制台所在目录) |
root@ubuntu:/home/jack/docker# docker save mysql:V8.0 > mysql.tar
root@ubuntu:/home/jack/docker# ll
总用量 1078040
drwxr-xr-x 4 root root 4096 6月 23 22:58 ./
drwxr-xr-x 22 jack jack 4096 6月 22 22:18 ../
drwxr-xr-x 2 systemd-coredump root 4096 4月 10 18:14 data/
-rw------- 1 root root 551940608 6月 22 22:37 mysql
-rw-r--r-- 1 root root 551940608 6月 23 22:58 mysql.tar
drwxr-xr-x 2 root root 4096 4月 10 18:14 redis.conf/
root@ubuntu:/home/jack/docker#
docker load -i mysql.tar
root@ubuntu:/home/hyacinth/SoftWare# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
root@ubuntu:/home/hyacinth/SoftWare# docker load -i mysql.tar
c3a984abe8a8: Loading layer [==================================================>] 72.48MB/72.48MB
3aa6919958ae: Loading layer [==================================================>] 338.4kB/338.4kB
f36486186489: Loading layer [==================================================>] 9.539MB/9.539MB
c08e063406bc: Loading layer [==================================================>] 4.495MB/4.495MB
b63d6049d8d7: Loading layer [==================================================>] 1.536kB/1.536kB
a1452fb52f96: Loading layer [==================================================>] 53.75MB/53.75MB
1a945d224d74: Loading layer [==================================================>] 6.656kB/6.656kB
7bb6a75aad66: Loading layer [==================================================>] 3.584kB/3.584kB
b10e17c4e958: Loading layer [==================================================>] 411.2MB/411.2MB
e61fc95905e3: Loading layer [==================================================>] 5.632kB/5.632kB
38d33c0c39bf: Loading layer [==================================================>] 16.38kB/16.38kB
e1d0e0aeeac6: Loading layer [==================================================>] 1.536kB/1.536kB
ca98c7859dd8: Loading layer [==================================================>] 8.192kB/8.192kB
Loaded image: mysql:V8.0
root@ubuntu:/home/hyacinth/SoftWare#
root@ubuntu:/home/hyacinth/SoftWare# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql V8.0 10a780397330 10 minutes ago 547MB
root@ubuntu:/home/hyacinth/SoftWare#
docker run -d --name=mysql8 -p 3306:3306 --restart=always mysql:V8.0