我是靠谱客的博主 暴躁盼望,最近开发中收集的这篇文章主要介绍docker用法零散记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

创建或启动一个容器

1. 创建一个容器

一定要加名字,这样好识别

docker run --name benjamin-ubuntu -it ubuntu:18.04 /bin/bash
  • - it:表示交互式进入
  • ubuntu:18.04:REPOSITORY:TAG
  • /bin/bash:进入命令行

2. 启动一个已创建并停止了的容器

docker start -ia <CONTAINER ID >

Usage:	docker start [OPTIONS] CONTAINER [CONTAINER...]

Start one or more stopped containers

Options:
  -a, --attach               Attach STDOUT/STDERR and forward signals
      --detach-keys string   Override the key sequence for detaching a container
  -i, --interactive          Attach container's STDIN

3. 退出容器的方式

3.1 退出即停止
Ctrl+d
要想重新进入:docker start -ia <CONTAINER ID>
3.2 退出不停止
Ctrl+P+Q:注意是大写,请注意按键顺序
进入的首选方法:docker exec <CONTAINER ID> COMMAND即后面要跟上容器号和相关的命令
不建议的方法:docker attach <CONTAINER ID>

3. 删除一个容器

docker rm -f <CONTAINER ID>

更新镜像

首先进入对应容器做一番操作,然后退出:exit
接下来用一条查看指令:

docker ps -l 查看最近一个进程
或
docker ps -n int 查看最近几个进程

点击放大查看
在这里插入图片描述
接下来更新镜像,操作指令如下:

docker commit -m="add username--benjamin--" -a="bianjie" 38cc5b843cee benjamin/ubuntu:18.04-v1
  • -m::提交的描述信息
  • -a:指定镜像作者
  • 38cc5b843cee:容器 ID
  • benjamin/ubuntu:18.04-v1: 指定要【创建的目标镜像名】和【tag】,用冒号分隔

然后可以使用 docker images 命令来查看我们的新镜像:

docker images benjamin/ubuntu  # 这里加上了我们刚刚创建的镜像名,不用看别的镜像内容

在这里插入图片描述

镜像推送

  1. 在镜像commit之后,镜像push推送之前,首先需要打标签
    docker tag ubuntu:18.04 username/ubuntu:18.04
    说明:
  • tag 后面紧跟的ubuntu:18.04:表示的是respository_name : tag_name
  • username/ubuntu:18.04:username表示的是Docker 账号用户名或harbor账号用户名
  1. 然后进行推送
    docker push username/ubuntu:18.04

裸版本ubuntu18.04问题解决

1. 容器内使用sudo 报bash: sudo: command not found

容器内避免使用root,建立新用户执行命令 使用sudo ,提示如下

bash: sudo: command not found

解决办法

apt-get update
apt-get install sudo

2. Ubuntu系统Tab键不能自动补全问题解决

1、利用vi编辑器打开/etc/bash.bashrc文件(需要root权限)

Shell代码

 sudo vim /etc/bash.bashrc  

2、找到文件中的下列代码

Shell代码

1.  #enable bash completion in interactive shells  
2.  #if ! shopt -oq posix; then  
3.  #      if [-f  /usr/share/bash-completion/bash_completion ]; then  
4.  #          . /usr/share/bash-completion/bash_completion  
5.  #      elif [ -f /etc/bash_completion]; then  
6.  #           . /etc/bash_completion  
7.  #      fi  
8.  #fi  

将注释符号#去掉,即改成

Shell代码

1.  #enable bash completion in interactive shells  
2.  if ! shopt -oq posix; then  
3.  if [-f  /usr/share/bash-completion/bash_completion ]; then  
4.  . /usr/share/bash-completion/bash_completion  
5.  elif [ -f /etc/bash_completion]; then  
6.  . /etc/bash_completion  
7.  fi  
8.  fi  

3、最后 source一下 /etc/bash.bashrc即可, 即

shell代码,如果说sudo下没有source命令,就把sudo去掉就行了。

1.  sudo source /etc/bash.bashrc

3. ubuntu系统shell中 source: not found错误

错误: shell脚本中含有source命令运行时提示 source: not found

测试:
运行ls -l /bin/sh 后显示/bin/sh -> dash
这说明是用dash来进行解析的。

解决方案:
命令行执行:dpkg-reconfigure dash(需要root权限)
在界面中选择no
再运行ls -l /bin/sh 后显示/bin/sh -> bash

最后测试shell脚本,可以正常使用!

镜像结果记录:
在这里插入图片描述

使用 Jupyter连接服务

关键指令只有一条:

  1. 选择镜像、设置计算资源和之前都差不多,在执行命令这一栏填写下面内容来启动jupyter服务:
jupyter notebook --allow-root --no-browser --ip 0.0.0.0 --port=$PAI_CONTAINER_HOST_jupyter_PORT_LIST --NotebookApp.token="" --NotebookApp.allow_origin="*" --NotebookApp.base_url="/"

上面的命令表示启动jupyter服务:

–allow-root:以root用户启动
–no-browser:启动后不要在浏览器中打开笔记本
–ip 0.0.0.0:使用本服务器的所有ipv4地址
–port=$PAI_CONTAINER_HOST_jupyter_PORT_LIST:开放jupyter端口
–NotebookApp.token="":不为notebook设置初始口令牌
–NotebookApp.allow_origin="":允许所有地址来访问jupyter。(Use '’ to allow any origin to access your server.)
–NotebookApp.base_url="/":不设置URL

  1. 然后在下方添加一个容器映射端口:
    在这里插入图片描述3.启动任务后会有一个ip和jupyter端口号,在浏览器输入即可进行访问。

最后

以上就是暴躁盼望为你收集整理的docker用法零散记录的全部内容,希望文章能够帮你解决docker用法零散记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部