本文将为您提供关于docker(二):CentOS安装docker的详细介绍,我们还将为您解释centos安装docker的相关知识,同时,我们还将为您提供关于CentOS7系统安装docker及do
本文将为您提供关于docker(二):CentOS安装docker的详细介绍,我们还将为您解释centos安装 docker的相关知识,同时,我们还将为您提供关于CentOS 7 系统 安装docker及docker compose 组件、CentOS 7下安装Docker以及Docker的基本使用、CentOS 7安装Docker V1.0 及 Docker相关命令、CentOS 8.0 64位安装Docker 以及 Docker Compose的实用信息。
本文目录一览:- docker(二):CentOS安装docker(centos安装 docker)
- CentOS 7 系统 安装docker及docker compose 组件
- CentOS 7下安装Docker以及Docker的基本使用
- CentOS 7安装Docker V1.0 及 Docker相关命令
- CentOS 8.0 64位安装Docker 以及 Docker Compose
docker(二):CentOS安装docker(centos安装 docker)
前置条件
1. CentOS 7:要求系统为64位、系统内核版本为 3.10 以上
使用如下命令,查看机器配置
lsb_release -a
uname -a
2. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
配置yum源(可做)
配置centos7的yum源(阿里云)
# 1.进入centos的yum目录
cd /etc/yum.repos.d/
# 2.备份原来的repo文件
mv CentOs-Base.repo CentOs-Base.repo.bak
# 3.下载文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 4.执行更新
yum clean all
yum makecache
yum update
安装
1.删除旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2.安装必要系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加软件源信息
# 1. 配置docker源(前面执行过的 可以不执行此命令)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 2. 列出可下载安装的docker版本
yum list docker-ce.x86_64 --showduplicates |sort -r
# 3.说明:docker-ce为软件名称,不用带x86_64;用“-”分割18.06.2版本号
# 示例如下
yum install docker-ce-18.06.2.ce-3.el7
# 4. 更新yum缓存
sudo yum makecache fast
4. 启动 Docker 后台服务
sudo systemctl start docker
systemctl enable docker
5.测试运行 hello-world
sudo docker run hello-world
镜像加速
docker镜像仓库,(理解为maven仓库,是国外的镜像仓库,下载慢),需要配置国内镜像源,提高下载速度。
1. 编辑该文件:vi /etc/docker/daemon.json // 如果该文件不存在就手动创建;
2. 在文件中输入以下内容,
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}
3. 有阿里云,华为云等云厂商的可以试试的云商的镜像加速,我试过感觉挺好的
使用普通用户执行docker(可做)
# 1.添加 docker 用户组,18.06已经默认做了
groupadd docker
# 2. 把需要执行的 docker 用户添加进该组,这里是 dev
gpasswd -a dev docker
# 3. 重启 docker
systemctl restart docker
#4. 切换用户
su - dev
# 5. 运行成功,查看docker启动的容器
docker ps -a
注意事项
如果之前是使用 root 用户拉取的镜像,mpsp用户启动镜像可能会出现问题,eg:
docker.elastic.co/elasticsearch/elasticsearch 6.2.4
会出现
mktemp: failed to create directory via template ''/tmp/elasticsearch.XXXXXXXX'': Permission denied
解决方案:
使用mpsp 用户重新拉取镜像
CentOS 7 系统 安装docker及docker compose 组件
1 概述
本章将详细介绍在CentOS7.0系统下如何安装docker,分为在线安装和离线安装两部分。目前,CentOS仅发行版本中的内核支持Docker。推荐使用CentOS 7.0及以上版本,64位操作系统、系统内核版本为3.10以上。
2 在线安装Docker
1)首先查看CentOS版本是否要求。若不符合版本要求,请升级系统版本
cat /etc/redhat-release
2)安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
3)添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4)更新yum缓存
yum makecache fast
5)安装Docker-CE
yum -y install docker-ce
6)启动docker后台服务
systemctl start docker
7)查验docker是否安装成功
docker version
8)安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
9)赋执行权限
chmod +x /usr/local/bin/docker-compose
10)查验docker-compose是否安装成功
docker-compose version
12)设置docker服务开机自启动
systemctl enable docker
3 离线安装Docker
1)获取docker离线安装包,形如centos-local.tgz压缩包。(请联系我获取)
2)将离线包上传到服务器的root目录下
3)进入root目录,解压.tgz包
cd /root tar -xvzf centos-local.tgz
4)安装createrepo
cd /root/docker-ce-local rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
5)新增docker-ce-local.repo源文件,写入以下内容
vi /etc/yum.repos.d/docker-ce-local.repo
[docker-ce-local]
name=Local Yum
baseurl=file:///root/docker-ce-local/
gpgcheck=1
gpgkey=file:///root/docker-ce-local/gpg
enabled=1
6)生成源索引及缓存
createrepo /root/docker-ce-local yum makecache
7)安装docker-ce
yum install docker-ce
8)启动并测试
systemctl start docker docker version
9)加入开机自启
systemctl enable docker
10)安装docker-compose
cp /root/docker-ce-local/docker-compose /usr/bin/
11)赋执行权限
chmod +x /usr/bin/docker-compose
12)验证版本
docker-compose version
CentOS 7下安装Docker以及Docker的基本使用
CentOS 7 安装 Docker CE https://cloud.tencent.com/developer/article/1382457
安装前的准备
系统要求
- 官方推荐使用 CentOS 7 的维护版本,已经归档的版本不受支持或未经测试
- 需要启用
centos-extras
repository。在 CentOS 7 中这个仓库是默认启用的,如果之前有将其禁用,则需要重新启用 - 推荐使用
overlay2
作为 Docker 的存储驱动
卸载旧版本
旧版本的 Docker 在 CentOS 中的包名为docker
或docker-engine
。如果之前安装了 Docker 的旧版本,需要先卸载旧版 Docker 及相关依赖:
> sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine
若yum
提示卸载成功或没有找到相关包,即可进行下一步操作。
注意:/var/lib/docker/
目录下的内容,包括镜像、容器、卷组、网络等文件将被保留。Docker CE 的新包名为docker-ce
。
安装 Docker CE
有以下三种方法安装 Docker CE,可根据实际需要选择:
- 建立 Docker 仓库:安装过程及后续的更新方便,Docker 官方推荐。
- 下载 RPM 包手动安装:手动管理更新。适合离线环境。
- 通过安装脚本自动安装:适合测试及开发环境。
方法 1:建立 Docker 仓库
在首次安装 Docker CE 前需要建立 Docker repository,之后可通过仓库安装并更新 Docker。
建立仓库
1.安装所需软件包。yum-utils
提供了yum-config-manager
工具,存储驱动devicemapper
则依赖于device-mapper-persistent-data
和lvm2
:
> sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2.使用以下命令建立stable
版本的 repository:
> sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
3.可选:启用edge
和test
仓库。这些仓库包含在docker.repo
文件中,但默认是禁用的。可以将它们与stable
仓库共同启用。
> sudo yum-config-manager --enable docker-ce-edge > sudo yum-config-manager --enable docker-ce-test
使用带--disable
参数的yum-config-manager
命令即可禁用edge
或test
仓库,使用--enable
参数则会重新启用。例如下面的命令将禁用edge
仓库:
> sudo yum-config-manager --disable docker-ce-edge
从 Docker
17.06
版本开始,stable
仓库的 releases 也会推送至edge
及test
仓库中。 点击此处查看 Docker 官方关于stable
和edge
的说明。
安装 Docker CE
1.使用以下命令安装最新版 Docker CE:
> sudo yum install docker-ce
如果提示是否接受 GPG 密钥,则需验证密钥指纹是否符合下面的内容,若符合即可点击 accept 继续安装:
060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
如果启用了多个 Docker 仓库,并且在
yum install
或yum update
命令中没有指明版本,则会安装所有仓库中版本号最新的 Docker。
2.要安装指定版本的 Docker CE,则需要从仓库中列出所有可用的版本,再根据需要选择安装:
> yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 18.09.0.ce-1.el7.centos docker-ce-stable
此时安装包名的格式为docker-ce-<VERSION STRING>
。例如安装18.03.0
版本的 Docker CE:
> sudo yum install docker-ce-18.03.0.ce
此时 Docker 应该已经安装完成,但还没有启动。新的用户组docker
也已创建,目前为空。
3.启动 Docker:
> sudo systemctl start docker
4.运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
升级 Docker CE
如需升级 Docker CE,则可根据上述安装教程,选择安装最新版docker-ce
,即可完成升级。
方法 2:下载 RPM 包手动安装
安装 Docker CE
如果无法使用 Docker 仓库,可以下载.rpm
安装包手动安装 Docker CE。
1.前往https://download.docker.com/linux/centos/7/x86_64/stable/Packages/,下载对应版本的 RPM 安装包。
2.使用yum
命令安装 RPM 包:
> sudo yum install /path/to/package.rpm
3.启动 Docker:
> sudo systemctl start docker
4.运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
升级 Docker CE
如需升级,则可下载新版本的 RPM 安装包,使用yum upgrade
命令升级:
> sudo yum -y upgrade /path/to/package.rpm
方法 3:通过安装脚本自动安装
通过 Docker 提供的一键安装脚本可以在开发环境中快速安装 Docker CE,且无需交互。get.docker.com 及 test.docker.com 分别对应edge
和test
版本,脚本源码存放在 docker-install 仓库 中。
Docker 官方不推荐在生产环境中使用安装脚本
下面的示例将使用 get.docker.com 提供的脚本安装 Docker CE 的最新发布版本。如果要安装最新测试版本,只需将脚本替换为 test.docker.com,并将下面示例命令中的get
替换为test
:
> curl -fsSL https://get.docker.com -o get-docker.sh > sudo sh get-docker.sh <output truncated>
如果需要让非root
用户使用 Docker,则使用以下命令将用户添加至docker
用户组:
> sudo usermod -aG docker your-user
注销并重新登录,即可生效。之后启动 Docker:
> sudo systemctl start docker
运行hello-world
镜像以验证 Docker 是否正确安装:
> sudo docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
卸载 Docker CE
1. 卸载 Docker 安装包
> sudo yum remote docker-ce
2. 删除相关文件
主机上的镜像、容器、卷组以及自定义的配置文件需要手动删除:
> sudo rm -rf /var/lib/docker
参考资料
Get Docker CE for CentOS | Docker Docs
Post-installation steps for Linux | Docker Docs
Docker Docs
镜像加速
如果发现Docker拉取镜像的速度非常缓慢,可以配置加速器来解决
在这里使用阿里云的加速地址:
https://br10hqrl.mirror.aliyuncs.com
修改Docker的配置文件来设置加速地址
vim /etc/docker/daemon.json
1
{
"registry-mirrors": ["https://br10hqrl.mirror.aliyuncs.com"]
}
1
2
3
如果没有该文件,新建一个
也可以通过以下命来设置
tee /etc/docker/daemon.json <<-''EOF''
{
"registry-mirrors": ["https://br10hqrl.mirror.aliyuncs.com"]
}
EOF
1
2
3
4
5
使配置文件生效
systemctl daemon-reload && systemctl restart docker
1
删除Docker-ce
yum remove -y docker-ce
rm -rf /var/lib/docker
1
2
Docker Hello World
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。
输出Hello world
docker run ubuntu /bin/echo "hello world"
1
Unable to find image ''ubuntu:latest'' locally
latest: Pulling from library/ubuntu
7413c47ba209: Pull complete
0fe7e7cbb2e8: Pull complete
1d425c982345: Pull complete
344da5c95cec: Pull complete
Digest: sha256:c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a
Status: Downloaded newer image for ubuntu:latest
hello world
1
2
3
4
5
6
7
8
9
参数解析:
docker:Docker的二进制文件
run:与前面的docker组合使用来运行一个容器
ubuntu:latest:指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
/bin/echo “hello world”:在启动的容器里执行的命令
整句意思是:Docker以ubuntu:latest镜像创建一个容器,然后在容器里面执行bin/echo "hello world"命令,然后输出结果。
运行交互式的容器
我们可以通过docker的-i-t参数来让容器实现"对话"功能
docker run -it ubuntu:latest /bin/bash
root@a08b25f150bc:/#
1
2
参数解析:
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
-t:在新容器内指定一个伪终端或终端。
通过-i-t两个参数我们进入到了ubuntu这个容器内部
在容器内部运行以下命令查看当前系统版本信息和当前目录下的文件列表
root@a08b25f150bc:/# cat /proc/version
Linux version 3.10.0-957.21.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Tue Jun 18 16:35:19 UTC 2019
root@a08b25f150bc:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@a08b25f150bc:/#
1
2
3
4
5
6
启动容器
在我们启动容器的时候通过-d参数可以使容器后台运行
docker run -d ubuntu:latest /bin/sh -c "while true; do echo hello world; sleep 1; done"
1391c001ef7f562c8c95730998a94b638f9be9fc05be9075db19fd2aa8f2fc9b
1
2
3
在输出中,我们没有看到期望的"hello world",而是一串长字符
1391c001ef7f562c8c95730998a94b638f9be9fc05be9075db19fd2aa8f2fc9b
这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。
首先,我们需要确认容器在运行,可以通过docker ps来查看,加-a参数可以查看所有容器,包括退出、创建中和正在运行的容器。
docker ps
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1391c001ef7f ubuntu:latest "/bin/sh -c ''while t…" 5 minutes ago Up 5 minutes mystifying_burnell
1
2
3
docker ps -a
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1391c001ef7f ubuntu:latest "/bin/sh -c ''while t…" About an hour ago Exited (137) 19 minutes ago mystifying_burnell
700af38bbd37 ubuntu:latest "/bin/bash" About an hour ago Exited (0) About an hour ago practical_wescoff
a08b25f150bc ubuntu:latest "/bin/bash" About an hour ago Exited (130) About an hour ago gallant_curie
6eb5efafcfe8 ubuntu "/bin/echo ''hello wo…" About an hour ago Exited (0) About an hour ago sharp_curran
64a28ff4f5cd hello-world "/hello" 2 hours ago Exited (0) 2 hours ago clever_booth
1
2
3
4
5
6
7
参数解析:
CONTAINER ID:容器ID
NAMES:自动分配的容器名称
我们可以使用docker logs ["CONTAINER" | "NAMES"]来查看容器内的标准输出和日志
docker logs 1391c001ef7f
hello world
hello world
hello world
hello world
hello world
1
2
3
4
5
6
docker logs mystifying_burnell
hello world
hello world
hello world
hello world
hello world
1
2
3
4
5
6
停止容器
我们使用docker stop ["CONTAINER" | "NAMES"]来停止容器
docker stop 1391c001ef7f
1391c001ef7f
1
2
通过docker ps查看,容器已经停止工作
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1
2
也可以使用下面的命令来停止
docker stop mystifying_burnell
1
Docker 容器的使用
Docker的所有命令
我们可以输入doker --help或者直接输入docker来查看docker的所有命令
docker --help
1
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/root/.docker")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
Commands:
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container''s changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container''s filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container''s filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Run ''docker COMMAND --help'' for more information on a command.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
我们还可以通过docker COMMAND --help来查看某个选项的更多信息
docker rm --help
1
运行一个Web应用
前面我们运行的容器并没有什么特别的用处。
接下来我们尝试使用Docker构建一个web应用程序
我们将在Docker容器中运行一个 Python Flask 应用来运行一个web应用。
下载镜像
我们可以通过docker pull命令来下载镜像,如果不指定镜像的tag则默认是用latest版本的镜像
docker pull training/webapp
1
docker pull training/webapp
Using default tag: latest
latest: Pulling from training/webapp
e190868d63f8: Pull complete
909cd34c6fd7: Pull complete
0b9bfabab7c1: Pull complete
a3ed95caeb02: Pull complete
10bbbc0fc0ff: Pull complete
fca59b508e9f: Pull complete
e7ae2541b15b: Pull complete
9dd97ef58ce9: Pull complete
a4c1b0cb7af7: Pull complete
Digest: sha256:06e9c1983bd6d5db5fba376ccd63bfa529e8d02f23d5079b8f74a616308fb11d
Status: Downloaded newer image for training/webapp:latest
docker.io/training/webapp:latest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
上面我所下载的镜像没有指定tag,所以默认使用的是latest的镜像版本,我们可以使用docker pull image:tag来下载指定版本的镜像。
例如,我想下载一个1.16版本的Nginx稳定版镜像
docker pull nginx:1.16
1
1.16: Pulling from library/nginx
1ab2bdfe9778: Pull complete
f50f9bfaef26: Pull complete
eef791162233: Pull complete
Digest: sha256:764877c3b96e7d57f8f15bb84597dd108dcdf700bfc43fbe340dae764630386d
Status: Downloaded newer image for nginx:1.16
docker.io/library/nginx:1.16
1
2
3
4
5
6
7
当指定了tag时,docker下载镜像就会下载指定的tag版本镜像,而不是默认的latest镜像。
运行容器
docker run -d -P training/webapp python app.py
5bc0e295d0033648eb98943f33d7acfc0f603d7b62225f3db21d812f81da1634
1
2
参数解析:
-d:让容器在后台运行。
-P:将容器内部使用的端口映射到主机的随机端口,如果使用-p参数,则是指定容器内部端口映射到主机上的某个端口,具体用法-p <主机端口>:<容器内部端口>。
查看Web应用容器
我们可以使用docker ps来查看docker正在运行的容器:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5bc0e295d003 training/webapp "python app.py" 16 seconds ago Up 13 seconds 0.0.0.0:32768->5000/tcp upbeat_knuth
1
2
3
各栏目解析:
CONTAINER ID:指容器的ID,每一个容器运行时都会有一个唯一的ID。
IMAGE:容器使用的镜像。
COMMAND:容器执行的命令。
CREATED:容器创建的时间。
STATUS:容器运行的时长。
PORTS:容器的端口映射情况,后面是容器内部使用的5000端口,映射到主机的32768端口,我们访问主机的32768端口,就可以使用容器提供的服务了。
NAMES:容器的名字,可以通过--name指定,和ID一样是唯一的。
通过标准输出,我们看到了容器提供服务的端口,打开浏览器,输入主机的ip:容器映射到主机的端口,来访问容器提供的服务了,这里我输入http://192.168.6.128:32768来访问。
前面我们使用-P来随机映射端口,下面我们自己来指定端口,使用-p参数指定
docker run -d -p 5000:5000 --name web training/webapp
4c1acc0051961193cc8faf8dcacf05dea454fb960217a243ae89b8e327ee8daf
1
2
我们把容器内部的5000端口映射到主机的5000端口,打开浏览器访问http://192.168.6.128:5000,就可以得到容器提供的服务了。
查看容器的端口
我们可以通过docker ps来查看正在运行的容器的ID、名字、和端口,要查看某个容器的端口,可以根据他的容器ID或者名字来获取它的端口信息,例如:
docker ps
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c1acc005196 training/webapp "python app.py" About an hour ago Up About an hour 0.0.0.0:5000->5000/tcp web
5bc0e295d003 training/webapp "python app.py" 3 hours ago Up 3 hours 0.0.0.0:32768->5000/tcp upbeat_knuth
1
2
3
4
我们要查看第一个容器的端口信息,它的ID是4c1acc005196,名字是web
docker port 4c1acc005196
5000/tcp -> 0.0.0.0:5000
1
2
docker port web
5000/tcp -> 0.0.0.0:5000
1
2
查看容器的日志信息
当我们运行docker容器时,需要查看它的日志信息,来确定是否运行正常,我们通过docker logs [CONTAINER | NAMES]来查看
docker logs -f 4c1acc005196
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
192.168.6.1 - - [16/Aug/2019 07:00:48] "GET / HTTP/1.1" 200 -
192.168.6.1 - - [16/Aug/2019 07:00:48] "GET /favicon.ico HTTP/1.1" 404 -
1
2
3
4
-f:让docker logs可以向tail -f一样持续输出容器内部的标准输出
查看WEB应用程序容器的进程
我们可以使用docker top来查看容器内部运行的进程
docker top 4c1acc005196
UID PID PPID C STIME TTY TIME CMD
root 19910 19891 0 14:02 ? 00:00:01 python app.py
1
2
3
检查WEB应用程序
使用docker inspect来查看Docker的底层信息,他会返回一个json文件记录着Docker容器的配置和状态信息。
docker inspect 4c1acc005196
1
[
{
"Id": "4c1acc0051961193cc8faf8dcacf05dea454fb960217a243ae89b8e327ee8daf",
"Created": "2019-08-16T06:02:31.210492449Z",
"Path": "python",
"Args": [
"app.py"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 19910,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-08-16T06:02:32.26229118Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
停止WEB应用容器
docker stop 4c1acc005196
4c1acc005196
1
2
重启WEB应用程序
已经停止的容器,我们可以使用docker start来启动
我们先找出退出容器的ID和名字,然后启动它,我们使用docker ps -a来找出退出的容器。
docker ps -a
1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c1acc005196 training/webapp "python app.py" 2 hours ago Exited (137) 6 minutes ago web
5bc0e295d003 training/webapp "python app.py" 4 hours ago Up 4 hours 0.0.0.0:32768->5000/tcp upbeat_knuth
1
2
3
我们还可以通过docker ps -l查询最后一次创建的容器
docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c1acc005196 training/webapp "python app.py" 2 hours ago Up 8 minutes 0.0.0.0:5000->5000/tcp web
1
2
3
上面输出我们获取了退出容器的ID,下面启动它
docker start 4c1acc005196
4c1acc005196
1
2
正在运行的容器我们可以通过docker restart来重启。
删除WEB应用容器
我们可以使用docker rm命令来删除不需要的容器
docker stop 4c1acc005196
4c1acc005196
docker rm 4c1acc005196
4c1acc005196
1
2
3
4
5
删除容器时,容器必须是停止状态,否则会报错,但是可以使用-f参数来强制删除。
docker rm 4c1acc005196
Error response from daemon: You cannot remove a running container 4c1acc0051961193cc8faf8dcacf05dea454fb960217a243ae89b8e327ee8daf. Stop the container before attempting removal or force remove
1
2
Docker 镜像的使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。
下面我们来学习:
1、管理和使用本地 Docker 主机镜像
2、创建镜像
列出镜像列表
我们可以使用 docker images 来列出本地主机上的镜像。
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 11 months ago 348.8 MB
1
2
3
4
5
6
7
8
9
10
各个选项说明:
**REPOSITORY:**表示镜像的仓库源
**TAG:**镜像的标签
**IMAGE ID:**镜像ID
**CREATED:**镜像创建时间
**SIZE:**镜像大小
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
所以,我们如果要使用版本为15.10的ubuntu系统镜像来运行容器时,命令如下:
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@d77ccb2e5cca:/#
1
2
如果要使用版本为14.04的ubuntu系统镜像来运行容器时,命令如下:
runoob@runoob:~$ docker run -t -i ubuntu:14.04 /bin/bash
root@39e968165990:/#
1
2
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
获取一个新的镜像
当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。
Crunoob@runoob:~$ docker pull ubuntu:13.10
13.10: Pulling from library/ubuntu
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:15b79a6654811c8d992ebacdfbd5152fcf3d165e374e264076aa435214a947a3
Status: Downloaded newer image for ubuntu:13.10
1
2
3
4
5
6
7
8
9
下载完成后,我们可以直接使用这个镜像来运行容器。
查找镜像
我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个httpd的镜像来作为我们的web服务。我们可以通过 docker search 命令搜索 httpd 来寻找适合我们的镜像。
runoob@runoob:~$ docker search httpd
1
**NAME:**镜像仓库源的名称
**DESCRIPTION:**镜像的描述
**OFFICIAL:**是否docker官方发布
拖取镜像
我们决定使用上图中的httpd 官方版本的镜像,使用命令 docker pull 来下载镜像。
runoob@runoob:~$ docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
8b87079b7a06: Pulling fs layer
a3ed95caeb02: Download complete
0d62ec9c6a76: Download complete
a329d50397b9: Download complete
ea7c1f032b5c: Waiting
be44112b72c7: Waiting
1
2
3
4
5
6
7
8
9
下载完成后,我们就可以使用这个镜像了。
runoob@runoob:~$ docker run httpd
1
创建镜像
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。
1.从已经创建的容器中更新镜像,并且提交这个镜像
2.使用 Dockerfile 指令来创建一个新的镜像
更新镜像
更新镜像之前,我们需要使用镜像来创建一个容器。
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
1
2
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit命令来退出这个容器。
此时ID为e218edb10161的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit来提交容器副本。
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
1
2
各个参数说明:
**-m:**提交的描述信息
**-a:**指定镜像作者
**e218edb10161:**容器ID
**runoob/ubuntu:v2:**指定要创建的目标镜像名
我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/ubuntu v2 70bf1840fd7c 15 seconds ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 5 days ago 188 MB
php 5.6 f40e9e0f10c8 9 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 4 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
1
2
3
4
5
6
7
8
9
10
11
使用我们的新镜像 runoob/ubuntu 来启动一个容器
runoob@runoob:~$ docker run -t -i runoob/ubuntu:v2 /bin/bash
root@1a9fbdeb5da3:/#
1
2
构建镜像
我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
runoob@runoob:~$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo ''root:123456'' |chpasswd
RUN useradd runoob
RUN /bin/echo ''runoob:123456'' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
1
2
3
4
5
6
7
8
9
10
11
每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
第一条FROM,指定使用哪个镜像源
RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
---> d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
---> Using cache
---> 0c92299c6f03
Step 3 : RUN /bin/echo ''root:123456'' |chpasswd
---> Using cache
---> 0397ce2fbd0a
Step 4 : RUN useradd runoob
......
1
2
3
4
5
6
7
8
9
10
11
12
参数说明:
-t :指定要创建的目标镜像名
. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
使用docker images 查看创建的镜像已经在列表中存在,镜像ID为860c279d2fec
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 860c279d2fec About a minute ago 190.6 MB
runoob/ubuntu v2 70bf1840fd7c 17 hours ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB
php 5.6 f40e9e0f10c8 10 days ago 444.8 MB
nginx latest 6f8d099c3adc 12 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
1
2
3
4
5
6
7
8
9
10
11
12
13
我们可以使用新的镜像来创建容器
runoob@runoob:~$ docker run -t -i runoob/centos:6.7 /bin/bash
[root@41c28d18b5fb /]# id runoob
uid=500(runoob) gid=500(runoob) groups=500(runoob)
1
2
3
从上面看到新镜像已经包含我们创建的用户runoob
设置镜像标签
我们可以使用 docker tag 命令,为镜像添加一个新的标签。
runoob@runoob:~$ docker tag 860c279d2fec runoob/centos:dev
1
docker tag 镜像ID,这里是 860c279d2fec ,用户名称、镜像源名(repository name)和新的标签名(tag)。
使用 docker images 命令可以看到,ID为860c279d2fec的镜像多一个标签。
runoob@runoob:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
runoob/centos 6.7 860c279d2fec 5 hours ago 190.6 MB
runoob/centos dev 860c279d2fec 5 hours ago 190.6 MB
runoob/ubuntu v2 70bf1840fd7c 22 hours ago 158.5 MB
ubuntu 14.04 90d5884b1ee0 6 days ago 188 MB
php 5.6 f40e9e0f10c8 10 days ago 444.8 MB
nginx latest 6f8d099c3adc 13 days ago 182.7 MB
mysql 5.6 f2e8d6c772c0 3 weeks ago 324.6 MB
httpd latest 02ef73cf1bc0 3 weeks ago 194.4 MB
ubuntu 15.10 4e3b13c8a266 5 weeks ago 136.3 MB
hello-world latest 690ed74de00f 6 months ago 960 B
centos 6.7 d95b5ca17cc3 6 months ago 190.6 MB
training/webapp latest 6fae60ef3446 12 months ago 348.8 MB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dcoker 容器的连接
前面我们实现了通过网络端口来访问运行在 docker 容器内的服务。下面我们来实现通过端口连接到一个 docker 容器
网络端口映射
我们创建了一个 python 应用的容器。
runoob@runoob:~$ docker run -d -P training/webapp python app.py
fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416fceb5593f059fc6d
1
2
另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。
我们使用 -P 参数创建一个容器,使用 docker ps 可以看到容器端口 5000 绑定主机端口 32768。
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fce072cc88ce training/webapp "python app.py" 4 minutes ago Up 4 minutes 0.0.0.0:32768->5000/tcp grave_hopper
1
2
3
我们也可以使用 -p 标识来指定容器端口绑定到主机端口。
两种方式的区别是:
-P :是容器内部端口随机映射到主机的高端口。
-p : 是容器内部端口绑定到指定的主机端口。
runoob@runoob:~$ docker run -d -p 5000:5000 training/webapp python app.py
33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
33e4523d30aa training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp berserk_bartik
fce072cc88ce training/webapp "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:32768->5000/tcp grave_hopper
1
2
3
4
5
6
另外,我们可以指定容器绑定的网络地址,比如绑定 127.0.0.1。
runoob@runoob:~$ docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py
95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b5613b5a932dfdfe8a857c
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95c6ceef88ca training/webapp "python app.py" 6 seconds ago Up 6 seconds 5000/tcp, 127.0.0.1:5001->5000/tcp adoring_stonebraker
33e4523d30aa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp berserk_bartik
fce072cc88ce training/webapp "python app.py" 10 minutes ago Up 10 minutes 0.0.0.0:32768->5000/tcp grave_hopper
1
2
3
4
5
6
7
这样我们就可以通过访问 127.0.0.1:5001 来访问容器的 5000 端口。
上面的例子中,默认都是绑定 tcp 端口,如果要绑定 UDP 端口,可以在端口后面加上 /udp。
runoob@runoob:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a
runoob@runoob:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6779686f06f6 training/webapp "python app.py" 4 seconds ago Up 2 seconds 5000/tcp, 127.0.0.1:5000->5000/udp drunk_visvesvaraya
95c6ceef88ca training/webapp "python app.py" 2 minutes ago Up 2 minutes 5000/tcp, 127.0.0.1:5001->5000/tcp adoring_stonebraker
33e4523d30aa training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp berserk_bartik
fce072cc88ce training/webapp "python app.py" 12 minutes ago Up 12 minutes 0.0.0.0:32768->5000/tcp grave_hopper
1
2
3
4
5
6
7
8
docker port 命令可以让我们快捷地查看端口的绑定情况。
runoob@runoob:~$ docker port adoring_stonebraker 5000
127.0.0.1:5001
1
2
Docker容器连接
端口映射并不是唯一把 docker 连接到另一个容器的方法。
docker 有一个连接系统允许将多个容器连接在一起,共享连接信息。
docker 连接会创建一个父子关系,其中父容器可以看到子容器的信息。
容器命名
当我们创建一个容器的时候,docker 会自动对它进行命名。另外,我们也可以使用 –name 标识来命名容器,例如:
runoob@runoob:~$ docker run -d -P --name runoob training/webapp python app.py
43780a6eabaaf14e590b6e849235c75f3012995403f97749775e38436db9a441
1
2
我们可以使用 docker ps 命令来查看容器名称。
runoob@runoob:~$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
43780a6eabaa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:32769->5000/tcp runoob
1
2
3
点赞 1
————————————————
版权声明:本文为CSDN博主「莫失莫忘c」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/TangXuZ/article/details/100082144
CentOS 7安装Docker V1.0 及 Docker相关命令
CentOS 7安装Docker V1.0
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install docker-io # 仅此一条命令就可以搞定;
#service docker start //启动
#service docker restart //重启
#service docker stop //停止
sudo docker runhello-world #验证安装是否成功
chkconfig docker on # 加入开机启动
docker命令:http://blog.csdn.net/opensure/article/details/46490749
#sudo docker images //在本机进行镜像查看
# sudo docker version //docker服务器对应版本查看
#sudo docker //查看docker的所有命令
#sudo docker command --help //查看单个docker命令的帮助,如docker ru--help
如果你想通过很快捷的方式查看容器的端口
#sudo docker port 容器ID或容器名称
查看容器的具体信息
以JSON的格式返回容器的具体信息
#sudo docker inspect容器ID或容器名称
进入容器执行命令
#sudo docker exec -it 容器ID /bin/bas
查看容器的日志
$sudo docker logs 容器ID或容器名称
退出当前容器
$sudo exit //在容器内部执行该命令(或crtl+D),一般在交互模式下退出当前容器
创建容器
# sudo docker create--name ubuntContainer ubuntu:14.04 /bin/echo ''Hello world''
重启容器
#sudo docker restart 容器ID
暂停容器
#sudo docker pause 容器ID //暂停
#sudo docker unpause 容器ID //解除暂停
停止容器
$sudo docker stop 容器ID或容器名称
#docker stop $(docker ps -q -a) //一次性停止所有容器,慎用
杀死容器
$sudo docker kill 容器ID或容器名称
删除容器
$sudo docker rm 容器ID或容器名称 //删除容器,正在运行的容器不能删除
#sudo docker rm $(docker ps -q -a) //一次性删除所有容器,慎用
以交互模式启动一个容器,将物理机的/src/webapp挂载到/opt/webapp下
#sudodocker run -t -i -v /src/webapp:/opt/webappubuntu:14.04 /bin/bash
Ø 把物理机的文件挂载到容器里
#sudo dockerrun -t -i -v/src/webapp/test.html:/opt/webapp/test.html ubuntu:14.04 /bin/bash
从容器内部拷贝文件到物理机
#sudo docker cp cd0f61fb8256:/opt/a.html /
列出容器里被改变的文件夹或文件
#sudo docker diff 容器ID
Docker镜像相关命令
镜像查看
#sudo docker images //在本机进行镜像查看
#sudo docker inspect 镜像ID //查看单个镜像的具体信息,以JSON格式返回
获取镜像
# sudo docker pull centos //从DockerHub获取镜像
查询镜像
#sudo docker search 镜像名称 //从DockerHub按照镜像名称模拟查询镜像
制作镜像
ü 通过Dockerfile构建镜像
#sudo cd / //来到根“/”下
#sudo mkdir redis //创建redis文件夹
#touch Dockerfile //创建Dockerfile文件,文件内容见如下灰色部分
给镜像打标签
#sudo docker tag 5db5f8471261 ouruser/sinatra:devel //当commit or build后,对镜像打标签
推送镜像到私有库
ü 下载私有仓库镜像
# docker pull registry #从DockerHub下载registry镜像,里面含私库的运行环境,#当然你也可以自己下载源码包,自己安装
ü 推送之前打tag
# docker tag 704ca5ad68c5 192.168.202.213:5000/newtouch/activemq #打标签(必须先打标签,#在推送)
ü Push tag到镜像
#docker push 192.168.202.213:5000/newtouch/activemq #将此tag推送到私有库
ü Push到仓库后,远程查看
#curl http://192.168.202.213:5000/v1/search #push之后,远程查看
ü 在另外一个docker客户端,从私有仓库下载
#docker pull 192.168.202.213:5000/newtouch/activemq
删除镜像
#sudo docker rmi 镜像ID
列出镜像的变更历史
# docker history
Docker运维相关命令
在物理机下查看有哪些容器
$ sudo docker ps //查看有那些正在运行着的容器
# 查看所有镜像
docker images
# 正在运行容器
docker ps
# 查看docker容器
docker ps -a
# 启动tomcat:7镜像
docker run -p 8080:8080 tomcat:7
# 以后台守护进程的方式启动
docker run -d tomcat:7
# 停止一个容器
docker stop b840db1d182b
# 进入一个容器
docker attach d48b21a7e439
# 进入正在运行容器并以命令行交互
# docker exec -it e9410ee182bd /bin/sh
# docker exec -t -i dev_tomcat /bin/bash
# 以交互的方式运行
docker run -i -t -p 8081:8080 tomcat:7 /bin/bash
基于这个image,创建一个容器吧:
# docker create --name dev_tomcat -p 8080:8080 tomcat
# docker start dev_tomcat
# docker logs dev_tomcat
CentOS 8.0 64位安装Docker 以及 Docker Compose
1. 安装Docker
执行sudo curl -sSL https://get.daocloud.io/docker | sh
执行完之后输入docker -v
查看是否有对应的版本号,有的话则表明安装成功
2. 安装Docker Compose
官方文档
- 执行
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 执行
sudo chmod +x /usr/local/bin/docker-compose
。这一步是添加执行权限 - 接下来运行
docker-compose --version
,查看是否出现版本号,如果有表明安装成功。 - 如果第三步运行失败,执行
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
命令,把Docker Compose
换个路径存储,再执行第三步看看是否成功。
今天关于docker(二):CentOS安装docker和centos安装 docker的分享就到这里,希望大家有所收获,若想了解更多关于CentOS 7 系统 安装docker及docker compose 组件、CentOS 7下安装Docker以及Docker的基本使用、CentOS 7安装Docker V1.0 及 Docker相关命令、CentOS 8.0 64位安装Docker 以及 Docker Compose等相关知识,可以在本站进行查询。
本文标签: