docker学习01 - 基本操作

docker 的基本操作

1.1 安装docker
1.1.1下载docker依赖环境
# 想要安装docker,需要先将依赖的环境全部下载下拉,就像maven依赖jdk一样
yum -y install yum-utils device-mapper-persistent-data lvm2
1.1.2修改镜像源

由于docker默认连接的是国外的地址,如果从国外的地址下载相关东西,会比较慢,所以需要修改docker镜像的地址,可以设置为阿里云为镜像源,比较快

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.1.3 安装docker
yum makecache fast
yum -y install docker-ce
1.1.4 启动docker并测试
# 启动docker服务
systemctl start docker
# 设置开机自启
systemctl enable docker
# 测试docker是否安装成功
docker run hello-world
1.1.5 确认安装成功
[root@centOS ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:7f0a9f93b4aa3022c3a4c147a449bf11e0941a1fd0bf4a8e6c9408b2600777c5
Status: Downloaded newer image for hello-world:latest

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/
1.2 docker的中央仓库

Docker 常用的中央仓库有三个

1.2.1 官方的中央仓库

这个仓库镜像是最全的,但是也是下载最慢的

# docker 官方地址
https://hub.docker.com/
1.2.2 国内的镜像网站

网易蜂巢,daoCloud等,下载速度快,但是相对镜像不全

# 网易蜂巢
https://c.163yun.com/hub#/home 
# daoCloud  推荐使用
http://hub.daocloud.io/
1.2.3 公司内部私服
# 需要创建 /etc/docker/daemon.json,并添加如下内容
{
	# 设置私服的地址
	"registry-mirrors":["https://registry.docker-cn.com"],
	# 设置公司内部私服的ip和端口号
	"insecure-registries":["ip:port"]
}
# 配置完成后,重启两个服务
systemctl deamon-reload
systemctl restart docker
1.3 镜像的操作
1.3.1 拉取镜像
# 从中央仓库拉取镜像到本地
docker pull 镜像名称[:tag]
# 例如 docker pull daocloud.io/library/tomcat:8.5.15-jre8
1.3.2 查看本地全部镜像
查看本地已安装的镜像信息,包括标识,名称,版本,更新时间,大小等信息
docker images

查询到的结果是

[root@centOS docker]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              2ae23eb477aa        2 weeks ago         647MB
hello-world         latest              bf756fb1ae65        7 months ago        13.3kB
1.3.3 删除本地镜像
# 镜像会占用磁盘空间,可以直接手动删除,标识通过查看获取
docker rmi 镜像的标识

例如,上面查到hello-world的标识是 bf756fb1ae65,标识的使用有两种方式,第一种是整个标识,如

[root@centOS docker]# docker rmi bf756fb1ae65
Untagged: hello-world:latest
Untagged: hello-world@sha256:7f0a9f93b4aa3022c3a4c147a449bf11e0941a1fd0bf4a8e6c9408b2600777c5
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b
Deleted: sha256:9c27e219663c25e0f28493790cc0b88bc973ba3b1686355f221c38a36978ac63

也可以在标识位置使用部分标识,只要能达到区分整个镜像就可以

[root@centOS docker]# docker rmi bf7
Untagged: hello-world:latest
Untagged: hello-world@sha256:7f0a9f93b4aa3022c3a4c147a449bf11e0941a1fd0bf4a8e6c9408b2600777c5
Deleted: sha256:bf756fb1ae65adf866bd8c456593cd24beb6a0a061dedf42b26a993176745f6b
Deleted: sha256:9c27e219663c25e0f28493790cc0b88bc973ba3b1686355f221c38a36978ac63
1.3.4 镜像的导入导出

有的时候我们的镜像并没有放到远程仓库,而是想让本地的镜像运行到服务器上,但是这种情况下的镜像名和版本都是null,需要手动改。

1.3.4.1 将本地镜像导出
docker save -o 导出的路径 镜像id
# 例子
[root@centOS docker]# docker save -o /download/tomcat_test 2a
[root@centOS docker]# cd /download/
[root@centOS download]# ll
总用量 1289676
-rw-------. 1 root root 659596288 8月  25 21:37 tomcat_test
1.3.4.2 将本地镜像导入
# 加载本地镜像
docker load -i 镜像文件
# 例子 
[root@centOS download]# docker load -i /download/tomcat_test
0ced13fcf944: Loading layer  119.2MB/119.2MB
b2765ac0333a: Loading layer   17.1MB/17.1MB
7a9460d53218: Loading layer  17.85MB/17.85MB
e5df62d9b33a: Loading layer    150MB/150MB
de9aadc6b492: Loading layer  11.52MB/11.52MB
03ae48cd6c8d: Loading layer  3.584kB/3.584kB
e0f57f282835: Loading layer  323.2MB/323.2MB
022e8a8769df: Loading layer   2.56kB/2.56kB
1e73ecd77041: Loading layer   20.6MB/20.6MB
7a238b92e6c3: Loading layer  2.048kB/2.048kB
Loaded image ID: sha256:2ae23eb477aa82782438e429f22e551c1a093e2aebb804fb3d1463dd510c16cb
[root@centOS download]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              2ae23eb477aa        2 weeks ago         647MB

上面可以看出,如果是导入的本地的镜像,repository 和 tag 都为none,需要手动添加

1.3.4.3 修改镜像
# 修改镜像信息
docker tag 镜像id 新镜像名称:版本
# 例子
[root@centOS download]# docker tag 2a tomcat:8.5
[root@centOS download]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              8.5                 2ae23eb477aa        2 weeks ago         647MB
1.4 容器的操作
1.4.1 运行容器

运行容器需要指定具体的镜像,如果镜像不存在,则会直接下载

# 运行镜像,创建一个容器
docker run 镜像标识|镜像名称[:tag]
# 常用参数
docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像标识|镜像名称[:tag]
# -d : 代表后台运行容器
# -p 宿主机端口:容器端口  : 为了映射当前linux 的端口和容器的端口
# --name : 容器名称:指定容器的名称

例子:

1.4.1.1 直接打印日志

这种方式,运行的日志直接打印,如果使用ctrl + c,则意思关闭容器。

[root@centOS ~]# docker run tomcat
Unable to find image 'tomcat:latest' locally
latest: Pulling from library/tomcat
Digest: sha256:9de2415ccf10fe8e5906e4b72eda21649a7a1d0b88e9111f8409062599f3728e
Status: Downloaded newer image for tomcat:latest
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
26-Aug-2020 11:20:59.185 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.37
1.4.1.2 容器在后台运行

使用 -d 等方式运行

[root@centOS ~]# docker run -d -p 8000:8080 --name mytomcat tomcat
cb2d1da418be638a005dff34e4172a898802cfb46defe11b7c188476d46d0e4f
1.4.2 查看后台运行日志

这个时候,如果想要看日志,可以使用下面这个命令

# docker logs -f 容器标识 
# -f 的作用是 实时 显示
[root@centOS ~]# docker logs -f cb
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
26-Aug-2020 11:27:14.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.37
1.4.3 关闭后台运行容器

容器在后台运行,如果我们想要关闭容器,可以使用下面这个命令

# docker stop 容器标识
[root@centOS ~]# docker stop cb
cb
1.4.4 查看正在运行的容器
docker ps [-qa]
# -a 查看全部容器,包括没有运行的
# -q 只查看容器的标识

# 例子 
[root@centOS ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
70a12bd3a601        tomcat              "catalina.sh run"   27 seconds ago      Up 24 seconds                 8080/tcp            intelligent_albattani
cb2d1da418be        tomcat              "catalina.sh run"   11 minutes ago      Exited (143) 6 minutes ago                        mytomcat
1d16a111f453        tomcat              "catalina.sh run"   17 minutes ago      Exited (130) 11 minutes ago                       romantic_wright
[root@centOS ~]# docker ps -qa
70a12bd3a601
cb2d1da418be
1d16a111f453
[root@centOS ~]#
[root@centOS ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
70a12bd3a601        tomcat              "catalina.sh run"   48 seconds ago      Up 45 seconds       8080/tcp            intelligent_albattani
[root@centOS ~]#
1.4.5 查看容器日志
# 查看容器日志,以查看容器运行的信息
docker logs -f 容器id
# 例如
[root@centOS ~]# docker logs -f cb
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
26-Aug-2020 11:27:14.930 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/9.0.37
1.4.6 进入容器内部
# 进入到容器内部操作
docker exec -it 容器id bash
# 例子 
[root@centOS ~]# docker exec -it 70 bash
root@70a12bd3a601:/usr/local/tomcat#

-i : --interactive,交互界面。
-t : --tty,伪终端界面。

1.4.7 从容器内部退出
# 我们进入容器后,如果想退出,可以使用exit命令
root@a6e28cf62fa4:/etc/mysql/conf.d# exit
exit
[root@centOS mysql_config_docker01]#
1.4.8 复制内容到容器
# 将宿主机的文件复制到容器内部的指定目录
docker cp 文件名称 容器id:容器内部路径

# 例如
[root@centOS ~]# docker cp /download/index.html 70:/usr/local/tomcat/webapps/

# 我们到webapps目录下查找
root@70a12bd3a601:/usr/local/tomcat/webapps# ls
index.html

但是现在如果访问页面还是访问不了,需要把index.html 文件放到ROOT文件夹下,没有的话,使用命令创建

# 创建文件夹
mkdir ROOT
# 移动文件
mv index.html ROOT/
1.4.9 重启、启动、停止、删除容器
1.4.9.1 重启容器

这里启动容器,是以容器上一次关闭的时候的文件为主,例如,我们在webapps下放一个项目,如果是采用 docker run 的形式,这个项目就不存在了,但是如果以 docker start /restart 的形式,这个项目还在

docker restart 容器id

# 例子 
[root@centOS ~]# docker restart c5
c5
1.4.9.2 启动容器
docker start 容器id

# 例子
[root@centOS ~]# docker start c5
c5
1.4.9.3 停止容器
# 停止指定容器 
docker stop 容器id
# 停止所有容器
docker stop $(docker ps -qa)

# 例子
[root@centOS ~]# docker stop 1e
1e
1.4.9.4 删除容器
# 删除指定容器
docker rm 容器id
# 删除所有容器
docker rm $(docker ps -qa)

# 例子
[root@centOS ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
1e1a40335b68        tomcat              "catalina.sh run"   17 minutes ago      Exited (143) 36 seconds ago                       jovial_banach
70a12bd3a601        tomcat              "catalina.sh run"   28 minutes ago      Exited (130) 17 minutes ago                       intelligent_albattani
cb2d1da418be        tomcat              "catalina.sh run"   39 minutes ago      Exited (143) 34 minutes ago                       mytomcat
1d16a111f453        tomcat              "catalina.sh run"   45 minutes ago      Exited (130) 39 minutes ago                       romantic_wright
[root@centOS ~]# docker rm 1d
1d
[root@centOS ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                        PORTS               NAMES
1e1a40335b68        tomcat              "catalina.sh run"   17 minutes ago      Exited (143) 53 seconds ago                       jovial_banach
70a12bd3a601        tomcat              "catalina.sh run"   28 minutes ago      Exited (130) 17 minutes ago                       intelligent_albattani
cb2d1da418be        tomcat              "catalina.sh run"   39 minutes ago      Exited (143) 35 minutes ago                       mytomcat


# 删除全部容器
[root@centOS ~]# docker rm $(docker ps -qa)
1e1a40335b68
70a12bd3a601
cb2d1da418be
[root@centOS ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@centOS ~]#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习DockerDocker Compose可以帮助您更好地管理和部署容器化应用程序。Docker是一种开源的容器化平台,它可以让开发人员和运维人员更方便地构建、打包和发布应用程序。而Docker Compose是一个用于定义和运行多个容器的工具,它可以使得多个容器之间的协作更加简单和高效。 要学习DockerDocker Compose,您可以按照以下步骤进行: 1. 首先,您需要安装Docker引用。您可以按照Docker官方文档的指南,根据您的操作系统选择正确的安装方法。对于CentOS系统,您可以通过使用以下命令来安装Docker引用: ``` sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io ``` 2. 安装完成后,您可以验证Docker的安装是否成功。运行以下命令来检查Docker版本: ``` docker --version ``` 3. 接下来,您可以学习如何使用Docker来构建和管理容器化应用程序。您可以阅读Docker的官方文档,学习Docker的基本概念、命令和操作。您可以了解如何创建、运行和停止容器,以及如何构建和推送镜像。 4. 一旦您熟悉了Docker基本操作,您可以继续学习Docker Compose引用。Docker Compose是一个用于定义和运行多个容器的工具。您可以使用一个单独的YAML文件来定义应用程序的多个服务和它们之间的关系。Docker Compose可以帮助您快速地启动、停止和管理多个容器。 5. 对于学习Docker Compose,您可以阅读Docker的官方文档,了解如何编写Docker Compose文件,定义各个服务的配置和依赖关系。您还可以了解如何使用Docker Compose命令来启动、停止和管理多个容器。 总结起来,要学习DockerDocker Compose,您可以按照以下步骤进行: 1. 安装Docker,并验证安装是否成功。 2. 学习Docker基本操作,包括容器的创建、运行和停止,以及镜像的构建和推送。 3. 学习Docker Compose,了解如何编写Docker Compose文件,定义多个服务的配置和依赖关系。 4. 使用Docker Compose命令来启动、停止和管理多个容器。 希望这些信息对您有所帮助,祝您学习愉快!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [dockerdocker-compose命令学习](https://blog.csdn.net/qq_29277155/article/details/124409801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值