docker 常用命令、安装、镜像加速配置

发布时间 2023-11-19 16:14:36作者: zlzgzlz

docker 笔记 , 请参考。

常用命令

官方学习网站,生涩。网上资料千奇百怪,建议到官网验证。

可以用AI学习一点,但经常有错,像文心一言、通义千问。

https://docs.docker.com/engine/reference/run/

以ubantu为例,你可以在docker安装一个ubantu容器。

你首先是有要有一个镜像,可以在hub.docker.com里寻找,并可能需要选择相应的tag

docker tag

以下是常用命令

  • docker --help

  • docker search ubantu : 从docker hub寻找镜像,常用参数--no-trunc,不打断描述。

  • docker pull ubantu :拉取镜像,可以指定某个tag,如docker pull ubuntu:22.04。

  • docker images : 查看镜像。常用参数-q,仅镜像id。

  • docker run:用一个镜像创建一个新的容器。-p设置端口映射。-it开启容器交互并启动tty终端。-d容器后台运行。-name为容器命名。

  • docker ps :查看容器。常用-a,默认仅显示运行的容器。

  • docker exec :在容器执行命令。需要配合-it,才能有终端交互。

  • docker update :修改容器的配置。如修改cpu、内存、重启策略--restart always。

  • docker rm:删除容器。

  • docker rmi:删除镜像。

  • docker inspect : 查看容器配置信息。

  示例,这里用tomcat,快点。参考链接https://blog.csdn.net/Sihang_Xie/article/details/128293410
  ①拉取tomcat镜像
  z@hp:~$ sudo docker pull tomcat
  Using default tag: latest
  latest: Pulling from library/tomcat
  ②查看镜像
  z@hp:~$ sudo docker images
  REPOSITORY       TAG       IMAGE ID       CREATED        SIZE
  tomcat           latest    3db0f5668a77   2 days ago     460MB
  ③从镜像创建新的容器,-d让容器后台运行,-p指定端口映射8080,--name指定容器名字zzz,最后一个参数指定镜像。
  sudo docker run -d -p 8080:8080 --name zzz tomcat
  ④查看容器状态
  z@hp:~$ sudo docker ps 
  CONTAINER ID   IMAGE     COMMAND             CREATED              STATUS              PORTS                                       NAMES
  4102adb4ed3c   tomcat    "catalina.sh run"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   zzz
  ⑤使用浏览器可以访问。
  ⑥进入容器交互模式,执行命令。
  z@hp:~$ sudo docker exec -it zzz /bin/bash
root@4102adb4ed3c:/usr/local/tomcat# ls
bin           conf             lib      logs            NOTICE     RELEASE-NOTES  temp     webapps.dist
BUILDING.txt  CONTRIBUTING.md  LICENSE  native-jni-lib  README.md  RUNNING.txt    webapps  work
  使用exit退出。
  ⑦修改容器参数,使容器自动重启
  z@hp:~$ sudo docker update --restart always zzz
zzz  

安装docker

Windows安装

在WSL下安装,可能是需要Windows 10 22H2的新特性,用linux子系统,暂不深究。

需要安装桌面版docker,下载链接如下:

https://www.docker.com/products/docker-desktop/

您的WSL可能版本较旧,可能需要更新WSL,使用wsl --update进行更新,在cmd界面里敲就行。

wsl-1

另,Windows使用WSL,可能需要hyper-v,开启hyper-v,与VMware workstation发生冲突,若需要使用VMware,则需要关闭hyper-v,命令如下:

bcdedit /set hypervisorlaunchtype off

并在:控制面板 -- 程序 -- 启用或关闭Windows功能,关闭”基于Linux的Windows子系统“ 和”虚拟化平台“。

然后重启电脑。

hyper v 1

Linux安装

不干网工后,没玩centos了,就不说了,以下是ubantu安装dokcer的方法。

sudo apt install docker.io
sudo systemctl enable docker
sudo docker version

一般是正常显示,不行apt update 和apt upgrade升级Linux系统各组件,全升级,影响较大,生产系统别搞哦。

可能还有人需要安装docker-compose,我不会,暂时没用到。

以下是离线安装,就不扩展,命令如下,建议su root,切换root用户。

先下载安装包,用vmtools,xftp,winscp等工具,拷到linux系统里。

下载docker-compose:https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64

下载doker:https://download.docker.com/linux/static/stable/x86_64/docker-23.0.1.tgz

在文件目录里,打开terminal,一条条敲安装命令。

tar -zxvf docker-23.0.1.tgz
mv docker/* /usr/bin
touch /etc/systemd/system/docker.service
vim /etc/systemd/system/docker.service

在vim界面,为/etc/systemd/system/docker.service添加如下内容,全部复制,添加服务。

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target

保存退出/etc/systemd/system/docker.service文件,然后继续。

chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
docker -v
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin
chmod +x /usr/local/bin/docker-compose
docker-compose --version

安装结束。这个是之前的笔记。可能还需要systemctl enable docker,搞一下开机自启。

配置docker镜像加速

参考阿里云链接

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

aliyun docker

Windows参考csdn博客

https://blog.csdn.net/yangyu0515/article/details/129331474